spring-cloud微服务之【naocs-springboot】--持续更新

前提条件

您需要先下载 Nacos 并启动 Nacos server。

启动好了,默认端口是8848,启动好了访问localhost:8848

启动配置管理

启动了 Nacos server 后,您就可以参考以下示例代码,为您的 Spring Boot 应用启动 Nacos 配置管理服务了。

  1. 添加依赖。
<!--核心依赖-->
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
</dependency>

总的依赖
<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>

	<!-- https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot-starter -->
	<dependency>
		<groupId>com.alibaba.boot</groupId>
		<artifactId>nacos-config-spring-boot-starter</artifactId>
		<version>0.2.7</version>
	</dependency>

	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
	</dependency>

	<dependency>
		<groupId>cn.hutool</groupId>
		<artifactId>hutool-all</artifactId>
	</dependency>
</dependencies>

注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。

  • 在 application.properties 中配置 Nacos server 的地址:
nacos.config.server-addr=127.0.0.1:8848
  • 当然也可以使用yml作为配置文件,如果使用yml作为配置文件时,配置如下:
nacos:
  config:
    server-addr: http://localhost:8848
  • 使用 @NacosPropertySource 加载 dataId 为 example 的配置源,并开启自动更新:
@SpringBootApplication
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class NacosConfigApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosConfigApplication.class, args);
    }
}

代码说明

@NacosPropertySource(dataId = "example", autoRefreshed = true)
这句话相当于使用Nacos的配置文件导入功能,这句话相当于导入nacos默认空间下面的dataId=example

图文:

  • 通过 Nacos 的 @NacosValue 注解设置属性值。
@Controller
@RequestMapping("config")
public class ConfigController {

    @NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)
    private boolean useLocalCache;

    @RequestMapping(value = "/get", method = GET)
    @ResponseBody
    public boolean get() {
        return useLocalCache;
    }
}

代码说明:

 @NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)
#autoRefreshed注解属性true表示支持自动刷新
--自动刷新就是如果你在nacos配置里面把值改了,项目下次获取属性的时候,自动刷新刷新值。

这个相当于spring @Value注解,给属性注入值

${}表达式
useLocalCache 属性
useLocalCache:false 表示读取属性useLocalCache,如果没读到,默认值设置为false
  • 启动 NacosConfigApplication,调用 curl http://localhost:8080/config/get,返回内容是 false
  • 通过调用 Nacos Open API 向 Nacos server 发布配置:dataId 为example,内容为useLocalCache=true

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example&group=DEFAULT_GROUP&content=useLocalCache=true"

或者直接通过nacos控制台的方式,新建dataId为example的文件,然后设置属性和值;

  • 再次访问 http://localhost:8080/config/get,此时返回内容为true,说明程序中的useLocalCache值已经被动态更新了。

这个是基于springboot版本的

如何给某个实体设置属性值呢?

@Data
@Component
@NacosConfigurationProperties(dataId = "promotion.properties", groupId = "DEFAULT_GROUP", autoRefreshed = true)
public class WxProperties {

    /**
     * appID
     */
    private String appId;

    /**
     * secret
     */
    private String appSecret;
    /**
     * 登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。
     */
    private String authCode2SessionUrlPath;
    /**
     *
     */
    private String accessTokenUrlPath;

}

使用注解@NacosConfigurationProperties类完成,功能可以理解为跟spring的@ConfigurationProperties差不多

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值