- 浏览: 492211 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 3226spring-data-jpa原理的第四 ... -
spring-data-jpa原理探秘(3)-QueryMethod类
2017-01-19 22:23 2646第三篇,我们来说说JPA规范中的QueryMethod相关类。 ... -
spring-data-jpa原理探秘(2)-RepositoryQuery的用途和分类
2016-12-29 23:33 2484本系列的第二篇文章, ... -
spring-data-jpa原理探秘(1)-运行环境创建及加载Repository接口
2016-11-30 23:30 4665spring-data-jpa的优点很多,比如继承Reposi ... -
两阶段提交
2016-10-31 19:52 1287这篇文章粗略讲一下两 ... -
ubuntu单机下安装多mysql 5.7.14
2016-08-01 23:38 1851前文已述,因为需要测试mysql的主从配置方案,所以要安装多个 ... -
windows系统下安装最新mysql 5.7.13解压版
2016-07-25 20:19 2538最近因为需要测试mysql的多种主从配置方案,所以要安装多个m ... -
论开源<5>---个人利益受损
2016-06-16 15:35 2305请看本系列最后一篇文 ... -
论开源<4>---开源的商业模式
2016-05-17 12:51 16644.开源的商业模式 人类社会的每次飞跃,都源于知识的普及和传播 ... -
论开源<3>---从公司企业的高度看开源
2016-05-11 11:53 14713.从公司企业的高度来看开源 首先需要承认,从人类发展史上来说 ... -
论开源<2>---开源运动的国家目标
2016-05-04 20:28 1468接下来第二篇,我们从国家层面来审视一下开源运动。 2.开源运 ... -
论开源<1>---软件本身的价值
2016-05-03 18:40 1781笔者从事软件行业已15 ... -
Enum枚举类型比值
2016-02-28 18:07 1269在编码时,两个Enum实例,直接用==就可以比较它们的值了,而 ... -
论架构师的职责
2016-01-31 20:49 1917很久以前(4,5年前)当 ... -
Java IDE中Access restriction错误的修订
2015-12-19 18:31 1526今天在eclipse mars中导入一个外部项目,在编译时出现 ... -
spring 4.x下让http请求返回json串
2015-11-28 11:24 2618当前很多应用已经开始将响应返回为json串,所以基于sprin ... -
HttpClient4.5 使用http连接池发送http请求深度示例
2015-10-21 14:38 19801HttpClient 3.x,4.x都提供http连接池管理器 ... -
从命令行及java程序运行MyBatis Generator 1.3.x自动生成MyBatis 3.x代码
2015-09-15 13:04 6903近期因为项目需要,调 ... -
闭锁CountDownLatch和栅栏CyclicBarrier之异同举例
2015-05-29 08:56 2402CountDownLatch和CyclicBarrier的主要 ... -
svn提交时,邮件通知问题解决的经验谈
2015-01-27 15:31 3598svn可以实现在commit提交 ...
相关推荐
Spring Boot 读取 Properties 和 YML 配置文件的方法 Spring Boot 框架提供了多种方式来读取配置文件,包括 Properties 和 YML 两种格式。在本文中,我们将详细介绍如何使用 Spring Boot 读取 Properties 和 YML ...
要启用邮件服务,我们需要在`application.properties`或`application.yml`配置文件中添加相关的属性。这些属性包括SMTP服务器地址(`spring.mail.host`)、端口号(`spring.mail.port`)、用户名(`spring.mail....
Spring Boot支持两种主要的配置文件格式:`application.properties`和`application.yml`。这两种格式都允许开发者以结构化的方式存储和管理应用程序的配置参数。 首先,让我们关注`yml`配置文件。YAML (YAML Ain't ...
当我们的应用程序被打包成JAR文件后,有时我们需要从JAR内部读取配置文件,例如application.properties或application.yml。本文将深入探讨如何在Spring框架中实现这一功能。 首先,理解Spring的资源配置。Spring...
在Java中读取yml配置文件指定key内容是一种常见的需求,特别是在 Spring Boot 框架中。yml文件是一种human-readable的配置文件格式,它可以存储配置信息。下面我们将详细介绍如何基于JAVA读取yml配置文件指定key内容...
在Spring Boot应用中,配置文件是管理应用设置的关键部分,其中`application.yml`是最常见的配置文件格式之一。本文将深入探讨如何在Spring Boot项目中读取`application.yml`中的属性值。 首先,为了能够利用`@...
在`application.properties`或`application.yml`文件中,添加以下配置: ```properties spring.mail.host=smtp.qq.com spring.mail.port=587 spring.mail.username=your_email@example.com spring.mail.password=...
本说明文档将深入探讨Java配置文件的编写规范、常见格式以及如何在应用程序中读取和使用配置信息。 一、配置文件类型 Java配置文件主要有以下两种形式: 1. 属性文件(Properties):以`.properties`为扩展名,如...
除了配置文件,Spring还支持从环境变量和命令行参数中读取属性。这对于运行时动态调整配置非常有用。 7. **配置文件位置** 默认情况下,Spring Boot会在类路径下的`config`目录下查找配置文件,也可以通过`spring...
Spring框架提供了强大的属性配置管理,能够帮助开发者轻松地读取和使用properties文件中的key-value对。本教程将深入探讨如何在Spring中以不同的方式读取properties文件,以便更好地理解和应用这些配置。 首先,...
- 使用配置管理工具如Spring Boot的`application.properties`或`application.yml`,它们提供了更强大的功能和灵活性。 - 避免硬编码配置,尽量从外部文件中读取,便于配置的调整和管理。 以上就是关于在Java中...
例如,使用`application.properties`或`application.yml`(Spring Boot项目中)存储数据库连接信息。这些文件可以包含如URL、用户名、密码、驱动类名等关键参数。 2. **JDBC连接步骤** - 加载数据库驱动:使用`...
然后,在Spring Boot应用中创建一个配置类,使用`@Configuration`和`@EnableConfigurationProperties`注解来读取邮件服务的配置属性,并通过`JavaMailSender`的bean进行注入: ```java import org.springframework....
在SpringBoot框架中,我们经常需要在application.yml文件中配置一些自定义的常量,以便在项目中使用。在本文中,我们将详细介绍如何在SpringBoot中从application.yml中获取自定义常量方式,并提供一个完整的示例代码...
通过这个案例,开发者不仅能学习到如何配置和使用`JavaMailSender`,还能了解到Spring Boot自动配置的原理以及如何从配置文件读取属性。这个示例项目对于初学者来说是一份很好的学习资料,能帮助他们快速掌握在...
这可能涉及到监听配置文件的改动并自动刷新配置,Spring Boot提供了一个`spring-boot-devtools`模块,支持配置文件的热更新。 最后,考虑到Vk2YaDiskImporter项目是一个master分支,这表明它可能是一个持续开发中的...
在Spring Boot应用中,我们可以在`application.properties`或`application.yml`文件中配置Kafka的相关参数,如bootstrap servers、group id、auto commit等。例如: ```properties spring.kafka.bootstrap-...
Spring Boot 集成 Kafka 可以帮助开发者轻松地在应用程序中实现消息生产和消费功能,利用 Kafka 的高性能和可扩展性。Kafka 是一个分布式流处理平台,它最初由 LinkedIn 开发,后来成为 Apache 软件基金会的顶级项目...