1、pom.xml
<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>
2、application.properties
# 應用名稱
spring.application.name=provider2004
# 應用服務 WEB 訪問端口
server.port=2004
# Nacos幫助文檔:https://nacos.io/zh-cn/docs/concepts.html
# Nacos認證信息
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
# Nacos 服務發現與注冊配置,其中子屬性 server-addr 指定 Nacos 服務器主機和端口
spring.cloud.nacos.discovery.server-addr=http://127.0.0.1:8848
# 注冊到 nacos 的指定 namespace,默認為 public
spring.cloud.nacos.discovery.namespace=public
3、bootstrap.properties 該配置為必須
# Nacos幫助文檔:https://nacos.io/zh-cn/docs/concepts.html
# Nacos認證信息
##spring.cloud.nacos.config.username=nacos
##spring.cloud.nacos.config.password=nacos
##spring.cloud.nacos.config.contextPath=/nacos
# 設置配置中心服務端地址
spring.cloud.nacos.config.server-addr=localhost:8848
# Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,請不要填寫這個值,直接留空即可
# spring.cloud.nacos.config.namespace=
spring.cloud.nacos.config.file-extension=yaml
##spring.cloud.nacos.config.group=DEFAULT_GROUP
注: 創建配置文件名為bootstrap.yml
,注意是bootstrap.xxx,而不是application
或者其他。原因如下
Nacos同springcloud-config一樣,在項目初始化時,要保證先從配置中心進行配置拉取,拉取配置之后,才能保證項目的正常啟動。springboot中配置文件的加載是存在優先級順序的,bootstrap優先級高於application
具體原因請參考https://www.cnblogs.com/larscheng/p/11392466.html
4、Provider2004Application.java
Provider2004Application.java
@EnableDiscoveryClient
@RestController
@RefreshScope
@SpringBootApplication
@Api(value="hello provider2004")
public class Provider2004Application {
public static void main(String[] args) {
SpringApplication.run(Provider2004Application.class, args);
}
@ApiOperation(value = "/hello",notes = "query hello",response =String.class)
@RequestMapping(value = "/hello/{string}",method = RequestMethod.GET)
public String echo(@PathVariable String string, HttpServletRequest request){
return " from provider2004 Hello "+string+request.getRemoteAddr();
}
@Value("${provider2004.config}")
private String config;
@ApiOperation(value = "/config",notes = "query hello",response =String.class)
@RequestMapping(value = "/config",method = RequestMethod.GET)
public String config(){
return " from provider2004 config "+config;
}
}
5、localhost:2004/config
參考:https://www.cnblogs.com/larscheng/p/11392466.html
6、bootstrap.properties增加nacos配置
i)、bootstrap.properties
# Nacos幫助文檔: https://nacos.io/zh-cn/docs/concepts.html
# Nacos認證信息
##spring.cloud.nacos.config.username=nacos
##spring.cloud.nacos.config.password=nacos
##spring.cloud.nacos.config.contextPath=/nacos
# 設置配置中心服務端地址
spring.cloud.nacos.config.server-addr=localhost:8848
# Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,請不要填寫這個值,直接留空即可
# spring.cloud.nacos.config.namespace=
spring.cloud.nacos.config.file-extension=yaml
##spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.extension-configs[0].data-id=provider2007.yaml
spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.extension-configs[0].refresh=true
ii).Nacos
iii)、Provider2004Application.java
@EnableDiscoveryClient
@RestController
@RefreshScope
@SpringBootApplication
@Api(value="hello provider2004")
public class Provider2004Application {
public static void main(String[] args) {
SpringApplication.run(Provider2004Application.class, args);
}
@ApiOperation(value = "/hello",notes = "query hello",response =String.class)
@RequestMapping(value = "/hello/{string}",method = RequestMethod.GET)
public String echo(@PathVariable String string, HttpServletRequest request){
return " from provider2004 Hello "+string+request.getRemoteAddr();
}
@Value("${provider2004.config}")
private String config;
@Value("${provider2007.config}")
private String config2;
@ApiOperation(value = "/config",notes = "query hello",response =String.class)
@RequestMapping(value = "/config",method = RequestMethod.GET)
public String config(){
return " from provider2004 config "+config+" from provider2007 config "+config2;
}
}
iiii)、