SpringBoot·不重启服务修改配置自动生效-nacos实践
nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,这次来体验一下nacos和SpringBoot集成使用。1、安装前提:安装好Docker、Docker-compose、Git,如果不会安装请查看 CoderQi公众号的文章Clone项目git clone https://github.com/nacos-group/nacos-docker.git//如果上面地址慢,请
nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,这次来体验一下nacos和SpringBoot集成使用。
1、安装
前提:安装好Docker、Docker-compose、Git,如果不会安装请查看
CoderQi
公众号的文章
-
Clone项目
git clone https://github.com/nacos-group/nacos-docker.git //如果上面地址慢,请用下面的地址 git clone https://gitee.com/amoqi/nacos-docker.git cd nacos-docker
目录如下
.
├── build
│ ├── bin
│ ├── conf
│ ├── Dockerfile
│ └── init.d
├── changlog
├── env
│ ├── mysql.env
│ ├── nacos-embedded.env
│ ├── nacos-hostname.env
│ ├── nacos-ip.env
│ └── nacos-standlone-mysql.env
├── example
│ ├── cluster-embedded.yaml
│ ├── cluster-hostname.yaml
│ ├── cluster-ip.yaml
│ ├── init.d
│ ├── mysql
│ ├── prometheus
│ ├── standalone-derby.yaml
│ ├── standalone-logs
│ ├── standalone-mysql-5.7.yaml
│ └── standalone-mysql-8.yaml
├── README.md
└── README_ZH.md
输入命令修改nacos的镜像版本,现在需要nacos需要设置镜像版本才能启动。
vi example/standalone-mysql-5.7.yaml
//修改下面一行
image: nacos/nacos-server:${NACOS_VERSION}
//改为下面的版本号,注意只改动版本号,前面的空格别动
image: nacos/nacos-server:1.4.2
输入如下命令进行启动
docker-compose -f example/standalone-mysql-5.7.yaml up -d
启动后输入地址进行查看:
http://IP地址:8848/nacos/
2、使用配置中心
创建springboot项目spring-boot-nacos,POM依赖如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--nacos-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>${nacos-config-spring-boot.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-actuator</artifactId>
<version>${nacos-config-spring-boot.version}</version>
</dependency>
配置application.yml , server-addr
为nacos的地址+IP
spring:
application:
name: spirngboot-nacos
nacos:
config:
server-addr: 192.168.67.68:8848
management:
endpoints:
web:
exposure:
include: always
endpoint:
health:
show-details: always
进入nacos配置,点击左边的配置列表,添加一个配置,如图所示
在启动文件上加入注解 NacosPropertySource
@SpringBootApplication
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class SpringBootNacosApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootNacosApplication.class, args);
}
}
创建ConfigController.java文件,如下
@Controller
@RequestMapping("config")
public class ConfigController{
// @Value("${useLocalCache:false}")
@NacosValue(value = "${useLocalCache:false}",autoRefreshed = true)
private boolean useLocalCache;
@RequestMapping(value = "/get")
@ResponseBody
public boolean get() {
return useLocalCache;
}
}
访问 http://localhost:8080/config/get
,就会展示出useLocalCache的值
3、测试Nacos修改配置自动生效
进入nacos,编辑example文件,把useLocalCache修改false,如下
useLocalCache:true
访问 http://localhost:8080/config/get
,就会展示出useLocalCache为修改后的值。
结语
码字不易,希望能多多支持。一名四年工作经验的程序猿,目前从事物流行业的工作,有自己的小破网站amoqi.cn。欢迎大家关注公众号【CoderQi】,一起来交流JAVA知识,包括但不限于SpringBoot+微服务,更有奇奇学习过程中学习的视频、面试资料和专业书籍等免费放送,希望大家能够喜欢。
更多推荐
所有评论(0)