Nacos使用(三):Spring Cloud集成Nacos配置中心动态配置

上一篇教程介绍了Spring Boot集成Nacos配置中心,感兴趣的可以查看

看本文需要对Spring Cloud有初步了解

先上maven依赖pom.xml


	4.0.0
	
	
		org.springframework.boot
		spring-boot-starter-parent
		2.6.3
	

	com.test
	test
	0.0.1-SNAPSHOT
	jar

	test
	http://maven.apache.org

	
		UTF-8
	

	
		
		    com.alibaba.cloud
		    spring-cloud-starter-alibaba-nacos-config
		
		
			org.springframework.boot
			spring-boot-starter-web
		
        
		
		    org.springframework.cloud
		    spring-cloud-starter-bootstrap
		
	
	
	
		
			
			    com.alibaba.cloud
			    spring-cloud-alibaba-dependencies
			    2021.0.1.0
			    pom
			    import
			
	        
	            org.springframework.cloud
	            spring-cloud-dependencies
	            2021.0.1
	            pom
	            import
	        
		
	

引导配置bootstrap.properties

spring.application.name=test

#-------------------------------Nacos配置中心 start-------------------------------
#Nacos配置服务地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#配置文件类型,可选yaml
spring.cloud.nacos.config.file-extension=properties
#-------------------------------Nacos配置中心 end----------------------------------

项目入口App.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

/**
 * 
 * @author longmap
 *
 */
@SpringBootApplication
@ComponentScan(value = {"com.test.**"})
public class App {
    public static void main( String[] args ) {
    	SpringApplication.run(App.class, args);
    }
}

接口示例代码TestController.java

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class TestController {
	@Value(value = "${test:123}")
	private String test;
	
	@RequestMapping(value = "/get", method = { RequestMethod.GET })
	public String get() {
		return test;
	}
	
}

说明:

说明:之所以需要配置 spring.application.name ,是因为它是构成 Nacos 配置管理 dataId字段的一部分。

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

注意:

1.配置文件相比Spring Boot前面多了spring.cloud.,比如spring.cloud.nacos.config.server-addr=127.0.0.1:8848

2.有注入在线配置的类通过SpringCloud原生注解@RefreshScope实现配置自动刷新

3.配置注入注解从@NacosValue变为@Value

你可能感兴趣的:(Spring,Cloud,Spring,JAVA,spring,spring,boot,spring,cloud,java)