nacos配置在代码中引用的方法讲解

 更新时间:2022年12月10日 09:38:41   作者:jjw_zyfx  
这篇文章主要介绍了nacos配置在代码中如何引用,如果主配置中配置的内容和拓展配置的内容重复则按主配置的配置 ,如果拓展配置中的内容和另一个拓展配置中的内容重复,则按下标大的配置作为最终的配置,对nacos配置代码引用相关知识感兴趣朋友一起看看吧

1、在代码的模块服务中安装nacos 配置依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

2、在nacos配置中心中进行服务配置 注意不是模块名,是服务名称,即在bootstrap.yaml中配置的服务名称

3、在模块的bootstrap.yml文件中添加配置信息

# 注意前边是
spring
	cloud
		nacos
			config:
		    	server-addr: 127.0.0.1:8848  # 即服务发现的地址 
		    	# 如果不是public则需要再加一行指定具体的命名空间。

4、使用@Value(${})使用配置

@Value("${common.name}")
private String common_name;

@GetMapping(value = "/configs")
public String getValue(){
    return common_name;
}

获取动态的配置信息

代码如下:

 @Value("${common.name}")  // 这种方法不能获取动态的配置信息
    private String common_name;

 @Autowired
 private ConfigurableApplicationContext applicationContext;  // 这种方式可以获取动态的配置信息

 @GetMapping(value = "/configs")
 public String getValue(){
     // return common_name;
     return applicationContext.getEnvironment().getProperty("common.name");
 }

扩展配置

1、首先在nacos中配置两个拓展的配置文件 配置文件1

配置文件2

注意这两个文件的配置内容的变化 2、在bootstrap.yaml文件中添加如下配置

config:
  server-addr: 127.0.0.1:8848
   file-extension: yaml # 原配置 或者说是主配置
   group: DEFAULT_GROUP  
   ext-config[0]:  # 拓展配置1
     data-id: ext-config-common01.yaml
     group: COMMON_GROUP
     refresh: true  #  动态刷新
   ext-config[1]:  # 拓展配置2
     data-id: ext-config-common02.yaml
     group: COMMON_GROUP
     refresh: true

3、代码引用:

    @Autowired
    private ConfigurableApplicationContext applicationContext;

    @GetMapping(value = "/config")
    public String getValue(){
        String name = applicationContext.getEnvironment().getProperty("common.name");
        String addr = applicationContext.getEnvironment().getProperty("common.addr");
        return name+addr;
    }

4、最终的输出结果:

5、对结果的总结:

5.1、如果主配置中配置的内容和拓展配置的内容重复则按主配置的配置

5.2、如果拓展配置中的内容和另一个拓展配置中的内容重复,则按下标大的配置作为最终的配置

到此这篇关于nacos配置在代码中如何引用的文章就介绍到这了,更多相关nacos配置代码引用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java8新特性之日期时间API

    java8新特性之日期时间API

    这篇文章主要介绍了java8新特性之日期时间API,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • 使用Spring Boot AOP处理方法的入参和返回值

    使用Spring Boot AOP处理方法的入参和返回值

    这篇文章主要介绍了使用Spring Boot AOP处理方法的入参和返回值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 一文带你了解Java中的函数式编程

    一文带你了解Java中的函数式编程

    函数式编程的理论基础是阿隆佐·丘奇(Alonzo Church)于 1930 年代提出的 λ 演算(Lambda Calculus)。这篇文章主要为大家介绍了函数式编程的相关知识,希望对大家有所帮助
    2023-04-04
  • 解决idea配置Tomcat Deployment没有artifact选项的问题

    解决idea配置Tomcat Deployment没有artifact选项的问题

    今天在配置的时候tomcat deployment中却找不到artifact,没有artifact就不能打成war包上传到服务器了,那么怎么解决没有artifact选项的问题呢,今天通过本文给大家分享idea配置Tomcat Deployment没有artifact选项的解决方案,一起看看吧
    2023-10-10
  • Java中EnumMap和EnumSet枚举操作类的简单使用详解

    Java中EnumMap和EnumSet枚举操作类的简单使用详解

    这篇文章主要介绍了Java中EnumMap和EnumSet枚举操作类的简单使用详解,EnumMap是Map接口的一种实现,专门用于枚举类型的键,所有枚举的键必须来自同一个枚举 EnumMap不允许键为空,允许值为空,需要的朋友可以参考下
    2023-11-11
  • 详解Java中int和Integer的区别

    详解Java中int和Integer的区别

    这篇文章主要介绍了Java中int和Integer的区别文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Spring Bean生命周期源码原理图解

    Spring Bean生命周期源码原理图解

    这篇文章主要介绍了Spring Bean生命周期源码原理图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java对象的内存布局全流程

    Java对象的内存布局全流程

    这篇文章主要介绍了Java对象的内存布局全流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Java优秀类库Hutool使用示例

    Java优秀类库Hutool使用示例

    Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,涵盖了Java开发开发中的方方面面,使用Hutool可节省开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug
    2023-02-02
  • Java使用JDBC驱动连接MySQL数据库

    Java使用JDBC驱动连接MySQL数据库

    这篇文章主要为大家详细介绍了Java使用JDBC驱动连接MySQL数据库的具体步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论