- 浏览: 485328 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
u014689192:
第二条这个:2.一个事务session,关闭之前调用了comm ...
ActiveMQ的消息重发策略和DLQ处理 -
MCLoginandPwd:
分享一款代码生成器,拖拽式组件结合流式处理,很容易的访问数据库 ...
spring-data-jpa原理探秘(4)-JpaQueryExecution类概述 -
shuzheng5201314:
...
spring-boot读取props和yml配置文件 -
li17230:
给静态变量设置Setter方法,在Setter方法上加注入操作 ...
Spring不支持依赖注入static静态变量 -
sharong:
endual 写道牛~~~~~~~~~~~~~~~~~共同进步 ...
windows系统下安装最新mysql 5.7.13解压版
最近微框架spring-boot很火,笔者也跟风学习了一下,废话不多说,现给出一个读取配置文件的例子。
首先,需要在pom文件中依赖以下jar包
其次,我们需要一个spring-boot启动类
没错,@EnableConfigurationProperties注解里指出的PropsConfig.class,YmlConfig.class分别就是读取props和yml配置文件的类。接下来,我们分别进行读取properties和yml配置文件的具体实现。
1.读取properties配置文件
在类路径下放置一个application.properties文件,大致内容如下:
读取props配置的类,很简单,基本就是一个pojo/vo类,在类上加载@ConfigurationProperties注解即可。
单元测试类
可以看到在控制台输出的测试内容:
2.读取yml配置文件
在类路径下放置一个application.yml文件,大致内容如下:
读取yml配置文件的类。
单元测试类
可以看到在控制台输出的测试内容:
是不是很神奇,不需要spring的applicationContext.xml文件也可以顺利运行之。
首先,需要在pom文件中依赖以下jar包
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
其次,我们需要一个spring-boot启动类
@SpringBootApplication @EnableConfigurationProperties({PropsConfig.class,YmlConfig.class}) public class ReadApplication { public static void main(String[] args) { SpringApplication.run(ReadApplication.class, args); } }
没错,@EnableConfigurationProperties注解里指出的PropsConfig.class,YmlConfig.class分别就是读取props和yml配置文件的类。接下来,我们分别进行读取properties和yml配置文件的具体实现。
1.读取properties配置文件
在类路径下放置一个application.properties文件,大致内容如下:
master.ds.driverClassName=com.mysql.jdbc.Driver master.ds.url=jdbc:mysql://localhost:3306/test master.ds.username=root master.ds.password=root master.ds.filters=stat master.ds.maxActive=20 master.ds.initialSize=1 master.ds.maxWait=60000 master.ds.minIdle=10 master.ds.timeBetweenEvictionRunsMillis=60000 master.ds.minEvictableIdleTimeMillis=300000 master.ds.validationQuery=SELECT 'x' master.ds.testWhileIdle=true master.ds.testOnBorrow=false master.ds.testOnReturn=false master.ds.poolPreparedStatements=true master.ds.maxOpenPreparedStatements=100 master.ds.removeAbandoned=true master.ds.removeAbandonedTimeout=1800 master.ds.logAbandoned=true
读取props配置的类,很简单,基本就是一个pojo/vo类,在类上加载@ConfigurationProperties注解即可。
@ConfigurationProperties(prefix = "master.ds",locations = "classpath:application.properties") public class PropsConfig { private String driverClassName; private String url; private String username; private String password; private String filters; private String maxActive; private String initialSize; private String maxWait; public String getDriverClassName() { return driverClassName; } public void setDriverClassName(String driverClassName) { this.driverClassName = driverClassName; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getFilters() { return filters; } public void setFilters(String filters) { this.filters = filters; } public String getMaxActive() { return maxActive; } public void setMaxActive(String maxActive) { this.maxActive = maxActive; } public String getInitialSize() { return initialSize; } public void setInitialSize(String initialSize) { this.initialSize = initialSize; } public String getMaxWait() { return maxWait; } public void setMaxWait(String maxWait) { this.maxWait = maxWait; } }
单元测试类
@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = ReadApplication.class) public class ReadApplicationPropsTests { @Autowired private PropsConfig propsConfig; @Test public void testDisplayPropsValue() { String driverClassName = propsConfig.getDriverClassName(); String url = propsConfig.getUrl(); String username = propsConfig.getUsername(); String password = propsConfig.getPassword(); String filters = propsConfig.getFilters(); String maxActive = propsConfig.getMaxActive(); String initialSize = propsConfig.getInitialSize(); String maxWait = propsConfig.getMaxWait(); System.out.println("driverClassName -> " + driverClassName); System.out.println("url -> " + url); System.out.println("username -> " + username); System.out.println("password -> " + password); System.out.println("initialSize -> " + initialSize); System.out.println("maxWait -> " + maxWait); } }
可以看到在控制台输出的测试内容:
driverClassName -> com.mysql.jdbc.Driver url -> jdbc:mysql://localhost:3306/test username -> root password -> root initialSize -> 1 maxWait -> 60000
2.读取yml配置文件
在类路径下放置一个application.yml文件,大致内容如下:
myProps: #自定义的属性和值 simpleProp: simplePropValue arrayProps: 1,2,3,4,5 listProp1: - name: abc value: abcValue - name: efg value: efgValue listProp2: - config2Value1 - config2Vavlue2 mapProps: key1: value1 key2: value2
读取yml配置文件的类。
@ConfigurationProperties(prefix="myProps") //application.yml中的myProps下的属性 public class YmlConfig { private String simpleProp; private String[] arrayProps; private List<Map<String, String>> listProp1 = new ArrayList<>(); //接收prop1里面的属性值 private List<String> listProp2 = new ArrayList<>(); //接收prop2里面的属性值 private Map<String, String> mapProps = new HashMap<>(); //接收prop1里面的属性值 public String getSimpleProp() { return simpleProp; } public void setSimpleProp(String simpleProp) { this.simpleProp = simpleProp; } public List<Map<String, String>> getListProp1() { return listProp1; } public List<String> getListProp2() { return listProp2; } public String[] getArrayProps() { return arrayProps; } public void setArrayProps(String[] arrayProps) { this.arrayProps = arrayProps; } public Map<String, String> getMapProps() { return mapProps; } public void setMapProps(Map<String, String> mapProps) { this.mapProps = mapProps; } }
单元测试类
@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = ReadApplication.class) public class ReadApplicationYmlTests { @Autowired private YmlConfig ymlConfig; @Test public void testDisplayYmlValue() throws JsonProcessingException { System.out.println("simpleProp: " + ymlConfig.getSimpleProp()); ObjectMapper objectMapper = new ObjectMapper(); System.out.println("arrayProps: " + objectMapper.writeValueAsString(ymlConfig.getArrayProps())); System.out.println("listProp1: " + objectMapper.writeValueAsString(ymlConfig.getListProp1())); System.out.println("listProp2: " + objectMapper.writeValueAsString(ymlConfig.getListProp2())); System.out.println("mapProps: " + objectMapper.writeValueAsString(ymlConfig.getMapProps())); } }
可以看到在控制台输出的测试内容:
simpleProp: simplePropValue arrayProps: ["1","2","3","4","5"] listProp1: [{"name":"abc","value":"abcValue"},{"name":"efg","value":"efgValue"}] listProp2: ["config2Value1","config2Vavlue2"] mapProps: {"key1":"value1","key2":"value2"}
是不是很神奇,不需要spring的applicationContext.xml文件也可以顺利运行之。
评论
1 楼
shuzheng5201314
2016-12-08
|
发表评论
-
spring-data-jpa原理探秘(4)-JpaQueryExecution类概述
2017-02-28 13:55 3123spring-data-jpa原理的第四 ... -
spring-data-jpa原理探秘(3)-QueryMethod类
2017-01-19 22:23 2599第三篇,我们来说说JPA规范中的QueryMethod相关类。 ... -
spring-data-jpa原理探秘(2)-RepositoryQuery的用途和分类
2016-12-29 23:33 2439本系列的第二篇文章, ... -
spring-data-jpa原理探秘(1)-运行环境创建及加载Repository接口
2016-11-30 23:30 4609spring-data-jpa的优点很多,比如继承Reposi ... -
两阶段提交
2016-10-31 19:52 1248这篇文章粗略讲一下两 ... -
ubuntu单机下安装多mysql 5.7.14
2016-08-01 23:38 1806前文已述,因为需要测试mysql的主从配置方案,所以要安装多个 ... -
windows系统下安装最新mysql 5.7.13解压版
2016-07-25 20:19 2481最近因为需要测试mysql的多种主从配置方案,所以要安装多个m ... -
论开源<5>---个人利益受损
2016-06-16 15:35 2258请看本系列最后一篇文 ... -
论开源<4>---开源的商业模式
2016-05-17 12:51 16174.开源的商业模式 人类社会的每次飞跃,都源于知识的普及和传播 ... -
论开源<3>---从公司企业的高度看开源
2016-05-11 11:53 14273.从公司企业的高度来看开源 首先需要承认,从人类发展史上来说 ... -
论开源<2>---开源运动的国家目标
2016-05-04 20:28 1428接下来第二篇,我们从国家层面来审视一下开源运动。 2.开源运 ... -
论开源<1>---软件本身的价值
2016-05-03 18:40 1732笔者从事软件行业已15 ... -
Enum枚举类型比值
2016-02-28 18:07 1215在编码时,两个Enum实例,直接用==就可以比较它们的值了,而 ... -
论架构师的职责
2016-01-31 20:49 1871很久以前(4,5年前)当 ... -
Java IDE中Access restriction错误的修订
2015-12-19 18:31 1482今天在eclipse mars中导入一个外部项目,在编译时出现 ... -
spring 4.x下让http请求返回json串
2015-11-28 11:24 2571当前很多应用已经开始将响应返回为json串,所以基于sprin ... -
HttpClient4.5 使用http连接池发送http请求深度示例
2015-10-21 14:38 19672HttpClient 3.x,4.x都提供http连接池管理器 ... -
从命令行及java程序运行MyBatis Generator 1.3.x自动生成MyBatis 3.x代码
2015-09-15 13:04 6849近期因为项目需要,调 ... -
闭锁CountDownLatch和栅栏CyclicBarrier之异同举例
2015-05-29 08:56 2358CountDownLatch和CyclicBarrier的主要 ... -
svn提交时,邮件通知问题解决的经验谈
2015-01-27 15:31 3512svn可以实现在commit提交 ...
相关推荐
本篇文章主要介绍了spring-boot读取props和yml配置文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
react-native-global-props 一个简单的javascript实现,可将自定义默认道具添加到react-native组件。是否曾经希望您可以设置适用于像CSS这样的react-native组件的全局样式? body { background-color : 'teal'}p { ...
VueCoerceProps 将值转换/强制转换为所需的值安装npm install vue-coerce-props 在全局或本地安装mixin: // main.jsimport CoercePropsMixin from 'vue-coerce-props'Vue . mixin ( CoercePropsMixin ) // ...
今天小编就为大家分享一篇vue里面v-bind和Props 利用props绑定动态数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
前端开源库-map-props映射属性,映射反应属性的高阶组件
前端开源库-static-props静态属性,使用object.defineproperties定义静态对象属性
ramdump_modem_2022-12-14_19-45-39_props.txt
Sci-Fi Neon Props Pack v1.0.rar
前端大厂最新面试题-state_props
React导航道具映射器注意使用此软件包的版本1进行react-navigation版本4及更低版本使用此软件包的版本2进行react-navigation版本5 yarn add react-navigation-props-mapper 或者npm i react-navigation-props-mapper...
Next-pipe-props是一个零依赖项,它在将ssr或静态props传递到Next.js页面时提供管道助手。 安装 只需用纱安装 yarn add next-pipe-props 或npm npm install next-pipe-props --save 用法: next-pipe-props让您...
实现功能 ...$ npm install babel-plugin-syntax-jsx babel-plugin-transform-vue-jsx babel-helper-vue-jsx-merge-props babel-preset-es2015 --save-dev $ npm --registry https://registry.npm.taoba
React错误的道具 react-mistyped-props是一组用于在运行时检测错误输入的props的工具,类似于React.DOM组件如何警告它们。安装您可以通过npm安装react-mistyped-props: $ npm install --save react-mistyped-props...
react-page-visibility-render-props 用于简单,使用实现更好的可组合性。 待办事项:完成自述文件。 安装 npm install --save react-page-visibility-render-props 用法 只需将函数作为组件的<PageVisibility> 。...
并导入到您的文件中 import { PropsRoute, PublicRoute, PrivateRoute } from 'react-router-with-props'; 路线类型 PropsRoute-您可以传递道具的默认路线。 PublicRoute-它阻止对身份验证用户的访问,您可以将道具...
babel-plug-pure-static-props 修复了在使用样式化组件对React组件使用静态属性时可能发生的树抖动问题。 这个插件用带有/*#__PURE__*/注释的Object.assign()语句替换了React组件(例如MyComponent.defaultProps =...
它不具备全部功能,但是对于基本值和对象补间非常有效。 安装 通过 npm install --save react-animate-props 通过 yarn add react-animate-props 如何使用 react-animate-props现在为您提供两种(!)方式来对...
React Storybook Props插件 将道具和故事文档/资源显示到Storybook UI面板中。 状态 打算在此最终合并时弃用该仓库。 但是如果你想尝试... 目的 该插件为 UI提供了两个新面板。 道具。 显示组件属性(由使用提取) ...
安装npm i fold-render-props -S基本范例import folder from 'fold-render-props'const ComponentA = props => { return props . children ( { name : props . name . toUpperCase ( ) } )}const ComponentB = props...