spring-cloud-starter-alibaba-nacos-config 20210826


 

 

 

 

 

 

 

 

 

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)、

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM