springboot 集成 Apollo 动态获取配置文件的方法
作者:互联网
如果你要自己搭建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