springboot集成nacos 配置中心

  

  nacos本机需要安装好,未安装时,参考

  • 创建一个springboot myapi 项目,使用maven进行依赖包管理,创建两个模块nacosconfig(配置中心)、nacosregister,(注册中心),本方主要介绍配置中心,目录 结构如下:

  • 父pom.xml文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <modules>
        <module>nacosconfig</module>
        <module>nacosregister</module>
    </modules>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>org.howdy</groupId>
    <artifactId>myapi</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>myapi</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

<!--        <dependency>-->
<!--            <groupId>org.projectlombok</groupId>-->
<!--            <artifactId>lombok</artifactId>-->
<!--            <scope>provided</scope>-->
<!--        </dependency>-->

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
  • 子模块pom.xml配置信息如下
 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3     <parent>
 4         <artifactId>myapi</artifactId>
 5         <groupId>org.howdy</groupId>
 6         <version>1.0-SNAPSHOT</version>
 7     </parent>
 8     <modelVersion>4.0.0</modelVersion>
 9 
10     <artifactId>nacosconfig</artifactId>
11     <packaging>jar</packaging>
12 
13     <name>nacosconfig</name>
14     <url>http://maven.apache.org</url>
15 
16     <properties>
17         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
18     </properties>
19 
20     <dependencies>
21         <dependency>
22             <groupId>com.alibaba.cloud</groupId>
23             <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
24             <version>2.2.5.RELEASE</version>
25         </dependency>
26 
27         <!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-spring-context -->
28         <dependency>
29             <groupId>com.alibaba.nacos</groupId>
30             <!--NacosPropertySource 注解需要的包-->
31             <artifactId>nacos-spring-context</artifactId>
32             <version>0.3.6</version>
33         </dependency>
34 
35         <dependency>
36             <groupId>org.springframework.cloud</groupId>
37             <artifactId>spring-cloud-starter-bootstrap</artifactId>
38             <version>3.1.3</version>
39         </dependency>
40 
41         <dependency>
42             <groupId>junit</groupId>
43             <artifactId>junit</artifactId>
44             <version>3.8.1</version>
45             <scope>test</scope>
46         </dependency>
47     </dependencies>
48 </project>
View Code
  • 创建bootstrap.yml文件,bootstrap文件优先级高于application.yml文件,bootstrap.yml文件配置如下
server:
  port: 8090   #启动端口号  命令行注入
spring:
  application:
    name: mytask-dev
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848  #配置中心
        file-extension: yaml   #配置文件后缀名   dataId = application.name  +  file-extension
        namespace: public  #开发环境
        username: nacos
        password: nacos
        group: DEFAULT_GROUP
  • 在nacos配置管理,添加mytask-dev.yaml配置,如下

nacos:
  dev:
   propertie: 2
  • 创建TestController类,测试从配置文件获取信息
 1 package org.howdy.controller;
 2 
 3 import org.springframework.beans.factory.annotation.Value;
 4 import org.springframework.cloud.context.config.annotation.RefreshScope;
 5 import org.springframework.web.bind.annotation.GetMapping;
 6 import org.springframework.web.bind.annotation.RequestMapping;
 7 import org.springframework.web.bind.annotation.RestController;
 8 
 9 @RestController
10 @RequestMapping(value = "test")
11 @RefreshScope //实现动态刷新配置
12 public class TestController {
13 
14     //@NacosValue(value = "${nacos.dev.propertie:222}",autoRefreshed = true)
15     @Value("${nacos.dev.propertie}")
16     private String getPropertie;
17 
18     @GetMapping("/client")
19     public String client() {
20         return "我是从nacos获取的值:" + getPropertie;
21     }
22 }
View Code
  • 启动类main函数信息如下
 1 package org.howdy;
 2 
 3 /**
 4  * Hello world!
 5  *
 6  */
 7 import org.springframework.boot.SpringApplication;
 8 import org.springframework.boot.autoconfigure.SpringBootApplication;
 9 
10 
11 /**
12  * Hello world!
13  *
14  */
15 @SpringBootApplication
16 public class SpringbootNacosConfigApplication
17 {
18     public static void main( String[] args )
19     {
20         System.out.println( "Hello SpringbootNacosConfigApplication!" );
21         SpringApplication.run(SpringbootNacosConfigApplication.class, args);
22     }
23 }
View Code

  • 从配置中心,将值改为3后,发布配置,此时不重启服务,从浏览器再在刷新获取后,我们得到的是最新值

 

posted @ 2023-01-15 22:04  低调码农哥!  阅读(513)  评论(0编辑  收藏  举报