spring集成nacos配置中心

1, pom文件添加依赖:


          com.alibaba.nacos
          nacos-spring-context
          1.1.1
      

2,增加一个配置类

import com.alibaba.nacos.api.annotation.NacosProperties;
import com.alibaba.nacos.spring.context.annotation.config.EnableNacosConfig;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource("classpath:application.properties")   // 这个是指定下面的属性所在的配置文件
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "${nacos.serverAddr}"))
@NacosPropertySource(dataId = "${nacos.dataId}", groupId = "${nacos.group}", autoRefreshed = true, first = true)
public class NacosConfiguration {

}

并将nacos的ip地址,dataId,groupId配置在配置文件application.properties中

nacos.serverAddr=127.0.0.1:8848
nacos.dataId=web-dev
nacos.group=DEFAULT_GROUP

其中dataId和group分别是下面的两个值:

spring集成nacos配置中心_第1张图片

使用例子:

@Controller
@RequestMapping("test")
public class TestController {

    @Value(value = "${project.name:hehe}")  // 属性值,如果配置文件没有这个值,那么给默认值hehe
	private String projectName;

	@GetMapping(value = "/testGetName")
	@ResponseBody
	public String testGetName() {
		return this.projectName;
	}
}

 如果不用@Value标签获取属性,也可以通过下面的代码获取配置中心的配置属性,因为集成nacos配置中心后,配置中心的配置属性会加载到当前环境配置信息

@RestController
@RequestMapping("/test")
public class TestController {

	@Autowired
	private ApplicationContextUtil applicationContextUtil;

	@RequestMapping("/test3")
	public  String test3() {
		ApplicationContext context = applicationContextUtil.getApplicationContext(); // 获取上下文的一个工具类来获取上下文
		Environment environment = context.getEnvironment();
		String projectName = environment.getProperty("project.name"); // 获取配置属性
		return projectName;
	}
}

在代码中获取nacos配置文件的整个文件内容字符串

@RestController
@RequestMapping("/test")
public class TestController {

	@Value(value = "${nacos.serverAddr}")
	private String serverAddr;

	@Value(value = "${nacos.dataId}")
	private String dataId;

	@Value(value = "${nacos.group}")
	private String group;

	@GetMapping(value = "/getNacosConfigContent")
	public String getNacosConfigContent() throws NacosException {
		Properties properties = new Properties();
		properties.put("serverAddr", serverAddr);
		ConfigService configService = NacosFactory.createConfigService(properties);
		String content = configService.getConfig(dataId, group, 5000L);
		return content;
	}
}

参考官方文档:

Nacos 融合 Spring,成为注册配置中心

你可能感兴趣的:(spring)