1.概述
我们在使用 springcloud 的时候,本次升级到版本 2023.0.3 需要注意的一些问题,本文介绍一下如何整合 nacos 的配置和注册中心的问题。
2.整合过程
2.1 增加引用
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.3</version><relativePath/> <!-- lookup parent from repository --></parent><properties><java.version>17</java.version><spring-cloud-dependencies.version>2023.0.3</spring-cloud-dependencies.version><spring-cloud-alibaba-dependencies.version>2023.0.3.2</spring-cloud-alibaba-dependencies.version></properties># 依赖增加
<dependencies>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
</dependencies>
<dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba-dependencies.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud-dependencies.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
2.2主程序的调整
@SpringBootApplication
# 需要增加这个配置
@EnableDiscoveryClient
public class ClouddemoApplication {public static void main(String[] args) {SpringApplication.run(ClouddemoApplication.class, args);}}
2.3 配置文件调整
spring:application:name: nacos-democloud:nacos:username: nacospassword: nacosdiscovery:server-addr: 127.0.0.1:8848namespace: localgroup: DEFAULT_GROUPconfig:server-addr: 127.0.0.1:8848namespace: localgroup: DEFAULT_GROUPconfig:import: //如果需要使用一些公共的配置,这个需要做调整- "optional:nacos:nacos-config-dev.properties"
这里配置和之前有些不同,新版本增加了
spring:config:import:- "optional:nacos:nacos-config-dev.properties"
- optional: 表示这是一个可选配置,即使无法从 Nacos 获取配置,应用也能正常启动
- nacos: 指定配置源为 Nacos
- nacos-config-dev.properties 指定要从 Nacos 加载的具体配置文件 dataId
2.4 测试代码
@RestController
@RefreshScope
public class HelloController {@Autowiredprivate DiscoveryClient discoveryClient;@Value("${spring.redis.host:localhost}")private String redishost;@GetMapping("/redishost")public String getConfig() {return "redishost " + redishost;}@GetMapping("/services")public List<String> getServices() {return discoveryClient.getServices();}
}