0
点赞
收藏
分享

微信扫一扫

springboot项目集成Nacos以动态配置文件

龙毓七七 2022-04-19 阅读 109
java
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
    <version>0.2.1</version>
</dependency>

配置文件中添加配置

#nacos配置中心
nacos.config.server-addr=119.22.91.21:8848

直接注入的方式

然后在启动类上添加注解

@NacosPropertySources(value = {
        @NacosPropertySource(dataId = "consumer-server",autoRefreshed = true),
        @NacosPropertySource(dataId = "provider-dubbo",autoRefreshed = true),
        @NacosPropertySource(dataId = "email",autoRefreshed = true),
        @NacosPropertySource(dataId = "system",autoRefreshed = true),
})

然后在需要注入参数的地方直接如此注入参数即可;

@NacosValue(value = "${server.port}",autoRefreshed = true)
private String port;

将配置文件添加为pojo的注入

配置样例

port=huatian@163.com
host=1467
key=aoiZ9812LA82*l1
useAuth=true
user=huatian@163.com
from=huatian@163.com

@NacosConfigurationProperties注解

@Data
@Configuration
@NacosConfigurationProperties(dataId = "email",autoRefreshed = true)
public class EmailConfig {
   private String port;
   private String host;
   private String key;
   private boolean useAuth;
   private String user;
   private String from;

   // 这种配置只能说是创建一个单例bean,实际上云端即使更新了这里也不会更新,真正起效的只能是多例了
   @Bean(name = "emailConf")
   public EmailConf getConf(){
     return BeanUtil.copyProperties(this,EmailConf.class);
   }

   // 如此每次拿到的就是新生成的,当然你把this直接返回也可以
   public EmailConf getConfs(){
      return BeanUtil.copyProperties(this,EmailConf.class);
   }
}

带有前缀的pojo注入

@NacosConfigurationProperties+注解

配置样例
email.port=huatian@163.com
email.host=1467
email.key=aoiZ9812LA82*l1
email.useAuth=true
email.user=huatian@163.com
email.from=huatian@163.com
举报

相关推荐

0 条评论