SpringBoot整合Disconf
本文演示SpringBoot整合Disconf,并演示获取配置信息。
一、环境准备
服务器端安装Disconf不再细述,可自行前往官网https://disconf.readthedocs.io/zh_CN/latest/install/index.html 查阅。需要说明的是,Disconf安装依赖Nginx、Tomcat、Zookeeper、Redis、MySQL。
安装完成后,新建测试配置文件:
二、项目搭建
新建一个SpringBoot项目,引入依赖:
<properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><swagger2.version>2.9.2</swagger2.version><disconf.version>2.6.36</disconf.version><maven.test.skip>true</maven.test.skip></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- swagger2依赖--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${swagger2.version}</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${swagger2.version}</version></dependency><!--disconf依赖--><dependency><groupId>com.baidu.disconf</groupId><artifactId>disconf-client</artifactId><version>${disconf.version}</version></dependency></dependencies>
三、配置文件
①application.yml配置项目端口号:
server:port: 8989
②添加xml配置spring-disconf.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean" destroy-method="destroy"><property name="scanPackage" value="com.ldl.demo.disconf"/></bean><bean id="disconfMgrBeanSecond" class="com.baidu.disconf.client.DisconfMgrBeanSecond" init-method="init" destroy-method="destroy"/><bean id="configproperties_no_reloadable_disconf" class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean"><property name="locations"><list><value>test.properties</value></list></property></bean>
</beans>
③disconf配置类disconf.properties:
enable.remote.conf=true
conf_server_host=******
version=1_0_0
app=disconf-demo
env=rd
disconf.enable_local_download_dir_in_class_path=true
disconf.user_define_download_dir=./config/disconf
④Swagger配置类
@Configuration
@EnableSwagger2
public class Swagger2Configure {/*** API及扫描配置* @return*/@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.ldl.demo.controller")).paths(PathSelectors.any()).build();}/*** 展示信息* @return*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title("api文档").version("1.0").build();}
}
四、编码实现
①编写测试配置类:
@Service
@DisconfFile(filename = "test.properties")
public class TestConfig {private String name;public TestConfig() {}public TestConfig(String name) {this.name = name;}@DisconfFileItem(name = "name", associateField = "name")public String getName() {return name;}@Overridepublic String toString() {return "======>>>>>>"+name;}
}
②编写Controller类及测试请求方法:
@RestController
@RequestMapping("/")
public class TestController {@Autowiredprivate TestConfig testConfig;@GetMapping("getName")@ApiOperation("获取disocnf配置信息")public String getName(){return testConfig.toString();}}
③启动类
@SpringBootApplication
@ImportResource(locations = {"classpath:/spring-disconf.xml"})
public class DisconfDemoApplication {public static void main(String[] args) {SpringApplication.run(DisconfDemoApplication.class, args);}}
④启动项目并访问http://localhost:8989/swagger-ui.html:
测试获取配置属性OK!
SpringBoot整合Disconf相关推荐
- SpringBoot第九篇: springboot整合Redis
这篇文章主要介绍springboot整合redis,至于没有接触过redis的同学可以看下这篇文章:5分钟带你入门Redis. 引入依赖: 在pom文件中添加redis依赖: <dependen ...
- es springboot 不设置id_原创 | 一篇解决Springboot 整合 Elasticsearch
ElasticSearch 结合业务的场景,在目前的商品体系需要构建搜索服务,主要是为了提供用户更丰富的检索场景以及高速,实时及性能稳定的搜索服务. ElasticSearch是一个基于Lucene的 ...
- springboot整合shiro使用shiro-spring-boot-web-starter
此文章仅仅说明在springboot整合shiro时的一些坑,并不是教程 增加依赖 <!-- 集成shiro依赖 --> <dependency><groupId> ...
- db2 springboot 整合_springboot的yml配置文件通过db2的方式整合mysql的教程
springboot整合MySQL很简单,多数据源就master,slave就行了,但是在整合DB2就需要另起一行,以下是同一个yml文件 先配置MySQL,代码如下 spring: datasour ...
- 九、springboot整合rabbitMQ
springboot整合rabbitMQ 简介 rabbitMQ是部署最广泛的开源消息代理. rabbitMQ轻量级,易于在内部和云中部署. 它支持多种消息传递协议. RabbitMQ可以部署在分布式 ...
- 八、springboot整合Spring Security
springboot整合Spring Security 简介 Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架.它是保护基于Spring的应用程序的事实标准. Spr ...
- 六、springboot整合swagger
六.springboot整合swagger 简介 swagger 提供最强大,最易用的工具,以充分利用OpenAPI规范. 官网 : https://swagger.io/ 准备工作 pom.xml ...
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...
SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...
- SpringBoot整合RabbitMQ-整合演示
本系列是学习SpringBoot整合RabbitMQ的练手,包含服务安装,RabbitMQ整合SpringBoot2.x,消息可靠性投递实现等三篇博客. 学习路径:https://www.imooc. ...
最新文章
- 求几亿个数中不重复元素的个数
- Silverlight 游戏开发小技巧:动感小菜单2
- ubuntu MNN编译安装
- 域控制器与客户机之:域账号不能登录问题排查
- java反射机制浅谈
- php如何获得文件数量,PHP:获取目录中文件数量的最有效方法
- php100教程源码,PHP100 视频教程 2012-2013版_PHP教程
- T-SQL Optimization Tips (3): SELECT COUNT(*)
- Python文件(一):文件类型、文件的打开,读取写入,关闭、文件备份、文件和文件夹的操作
- 5.产品的三种流程图,你都知道吗?
- ant 卓越幕墙工具箱和 那个好用_卓越幕墙工具箱
- 企业信息化建设的总体规划
- 基于PHP+Html+MySQL的网上手机商城系统
- 去湘菜馆,该不该来壶酸梅汁?
- 文件上传漏洞原理和利用
- CIPT备考心得分享-下一个考过的就是你
- vue项目无法在IE打开
- Python 基于tkinter和sqlite3的会员管理系统
- hive 以beeline的模式启动
- asio(二)、异步定时器