创建Nacos配置管理
登录nacos,从左侧菜单找到命名空间
默认情况下只有一个public,我们可以添加一个dev用于管理开发环境的配置
注意命名空间ID是用于在spring boot里面配置命名空间使用,不写的会自动生成一串,最好填一下 完成后,就能在配置管理里面看到另一个命名空间了
点击右边+新建一个配置文件
Data ID 跟你项目的spring.application.name一致
Spring boot 项目开发部分
开发项目,获取配置项
新建一个项目,在pom里面添加依赖管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
添加依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
新建一个bootstrap.properties用于配置nacos的参数
spring.cloud.nacos.server-addr=127.0.0.1:8848
spring.cloud.nacos.username=nacos
spring.cloud.nacos.password=nacos
#配置命名空间
spring.cloud.nacos.config.namespace=dev
#假如你刚刚创建的配置文件里面的group不是DEFAULT_GROUP,则需要配置下面的参数
#spring.cloud.nacos.config.group=
#如果你在nacos创建配置文件后缀不是properties,则需要在下面的配置指定文件后缀
spring.cloud.nacos.config.file-extension=
新建一个application.properties
server.port=8011
#下面的名字与nacos上配置的Data ID 一致
spring.application.name=test-properties
新建一个controller,用于打印测试配置项
@RestController
@RequestMapping("/test")
public class TestController {
@Value("${test.user.name}")
private String userName;
@GetMapping("/")
public void test() {
System.out.println(userName);
}
}
定义启动类
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.*run*(TestApplication.class, args);
}
}
目录结构如下
点开http://127.0.0.1:8011/test/测试后,能够看到控制台输出了配置项的内容
指定公共部分的配置文件
有些配置文件每个服务都一样,不需要经常变动的可以提出来做成公共的配置文件
创建一个名为common的配置文件
bootstrap.properties加上下面的配置项
spring.cloud.nacos.config.extension-configs[0].data-id=common
#如果group不是DEFAULT_GROUP,则需要下面的属性去指定
spring.cloud.nacos.config.extension-configs[0].group=
修改TestController ,打印出测试的配置项
@RestController
@RequestMapping("/test")
public class TestController {
@Value("${test.user.name}")
private String userName;
@Value("${test.commmon.msg}")
private String commonMsg;
@GetMapping("/")
public void test() {
System.out.println(userName);
System.out.println(commonMsg);
}
}
点开http://127.0.0.1:8011/test/测试后,能够看到控制台输出了配置项的内容
使用spring.profiles.active来区分环境
修改application.properties
spring.profiles.active=test
在nacos上创建配置,data id 为{spring.application.name}-{ spring.profiles.active }.{你配置文件的拓展名}
再次调用http://127.0.0.1:8011/test/就能看到属性被替换