ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

springboot 集成 Apollo 动态获取配置文件的方法

2022-04-02 19:32:38  阅读:369  来源: 互联网

标签:Apollo springboot 配置文件 springframework org import apollo com


如果你要自己搭建Apollo环境的话参考: 

https://blog.csdn.net/qq_38983728/article/details/90108387

https://www.bilibili.com/video/BV1qt4117789

我是懒得搞,公司有现成的,下面说说咋集成使用

 

maven依赖

<dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>1.1.2</version>
</dependency>

 

application.yml

app:
  id: edu_xxx_service
apollo:
  bootstrap:
    enabled: true
    namespaces: application,application-volatile         //获取对应命名空间的配置
  meta: 'http://0000000'      //Apollo地址服务地址
  
//app.id:在配置中心配置的应用身份信息。
//apollo.bootstrap.enabled:在应用启动阶段是否向Spring容器注入被托管的properties文件配置信息。
//apollo.bootstrap.eagerLoad.enabled:将Apollo配置加载提到初始化日志系统之前。
//apollo.bootstrap.namespaces:配置的命名空间,多个逗号分隔,一个namespace相当于一个配置文件。

 

control层

package com.nnn.apollo.control;

import com.nnn.apollo.ent.ValueStyleProperty;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.LinkedHashMap;
import java.util.Map;

@RestController
@RequestMapping("/value-style")
public class ValuePropertyController {

    @Autowired
    private ValueStyleProperty keyProperty;

    @Value("${server.port:123}")            ---取的是配置文件 ,如果没有填入123 的写法
    private String port;

    @Value("${apollo.bootstrap.namespaces}")  ---取的是配置文件              
    private String namespaces;

    @GetMapping("/get")
    public Map<String, Object> getProperty() {
        Map<String, Object> map = new LinkedHashMap<>();
        map.put("port", port);
        map.put("namespaces", namespaces);                  ----获取启动时获取哪些应用的配置
        map.put("topic.name", keyProperty.getDemoKey1());   ----获取配置文件name对应的值
        return map;
    }

}

 

实体类

ValueStyleProperty

package com.nnn.apollo.ent;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
@Data
//其实就是搞个实体类 取配置文件里面的值 赋值过来而已
public class ValueStyleProperty {

    @Value("${topic.name}") 
    private String demoKey1;
}

 

启动类

package com;

import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
//在微服务应用启动中使用apollo配置中心获取配置信息
@EnableApolloConfig
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class SecurityApplication {
    public static void main(String[] args) {
        SpringApplication.run(SecurityApplication.class, args);
    }

}

 

其实阿,apollo用这个,当在apollo修改配置后,客户端已编译在跑的项目的配置文件 就会同步修改,那么项目就不用重启啦。

查看从apollo拉取回来的配置文件 可以找以下位置查看

 

 

然后拉取来的配置文件信息会覆盖本地的配置文件信息,当然apollo里面没有的就用原来本地的

标签:Apollo,springboot,配置文件,springframework,org,import,apollo,com
来源: https://www.cnblogs.com/kaibindirver/p/16093660.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有