SpringBoot属性配置实战(application.properties)
2017-07-18 09:43
886 查看
Spring Boot不但继承了Spring的强大功能,还实现了快速开发的便捷。如何实现快速开发,亮点主要在配置上,如果没有特殊要求完全不需要任何配置,是不是很爽。
使用application.properties,一般情况下主要用来配置数据库连接、日志相关配置等。除了这些配置内容之外,还有哪些其他特性和使用方法?如下:
一般属性使用
自定义属性使用
属性间的引用(占位符)
随机数的使用
数据类型自动转换
嵌套属性注入
一般属性使用
应用的配置文件可以使用application.properties也可以使用application.yml
application.properties
application.yml
以上属性一般都会被SpringBoot框架直接使用;
注意:使用.yml时,属性名的值和冒号中间必须有空格,如port: 80正确,port:80就是错的。
自定义属性使用
在使用Spring Boot的时候,通常也需要定义一些自己使用的属性,如下方式直接定义:
然后通过@Value(“${属性名}”)注解来加载对应的配置属性,具体如下:
属性间的引用(占位符)
可以在配置文件中引用前面配置过的属性(优先级前面配置过的这里都能用);
通过如${app.name:默认名称}方法还可以设置默认值,当找不到引用的属性时,会使用默认的属性,如当port属性不存在时会默认使用8080.
随机数的使用
在一些情况下,有些参数我们需要希望它不是一个固定的值,比如密钥、服务端口等。Spring Boot的属性配置文件中可以通过${random}来产生int值、long值或者string字符串,来支持属性的随机值。
random.int*支持value参数和,max参数,当提供max参数的时候,value就是最小值。
数据类型自动转换
SpringBoot可以方便的将属性注入到一个配置对象中,并实现自动数据类型转换:
对应对象为:
上面的代码会自动将prefix=”com.test” 前缀为com.test 的属性注入进来,并会自动转换类型,当使用List 的时候需要注意在配置中对List 进行初始化!
嵌套属性注入
SpringBoot还支持嵌套属性注入:
对应的配置类:
jdbc开头的属性都会注入到Jdbc对象中。
在Spring Boot使用过程中,能直观的感受到没了原来整合Spring应用时繁多的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,其中各个模块都有自己的默认配置,所以如果不是特殊应用场景,就只需要在application.properties中完成一些属性配置就能开启各模块的应用。
使用application.properties,一般情况下主要用来配置数据库连接、日志相关配置等。除了这些配置内容之外,还有哪些其他特性和使用方法?如下:
一般属性使用
自定义属性使用
属性间的引用(占位符)
随机数的使用
数据类型自动转换
嵌套属性注入
一般属性使用
应用的配置文件可以使用application.properties也可以使用application.yml
application.properties
spring.application.name=compute-service server.port=80 server.tomcat.uri-encoding=GBK
application.yml
spring: application: name: compute-service server: port: 80 server: tomcat: uri-encoding: GBK
以上属性一般都会被SpringBoot框架直接使用;
注意:使用.yml时,属性名的值和冒号中间必须有空格,如port: 80正确,port:80就是错的。
自定义属性使用
在使用Spring Boot的时候,通常也需要定义一些自己使用的属性,如下方式直接定义:
com.test.name=Tom com.test.password=123456
然后通过@Value(“${属性名}”)注解来加载对应的配置属性,具体如下:
public class MyProperties{ @Value("${com.test.name}") private String name; @Value("${com.test.password}") private String password; }
属性间的引用(占位符)
app.name=MyApp app.description=${app.name} is a Spring Boot application server.port=${port:8080}
可以在配置文件中引用前面配置过的属性(优先级前面配置过的这里都能用);
通过如${app.name:默认名称}方法还可以设置默认值,当找不到引用的属性时,会使用默认的属性,如当port属性不存在时会默认使用8080.
随机数的使用
在一些情况下,有些参数我们需要希望它不是一个固定的值,比如密钥、服务端口等。Spring Boot的属性配置文件中可以通过${random}来产生int值、long值或者string字符串,来支持属性的随机值。
# 随机字符串 com.test.value=${random.value} # 随机int com.test.number=${random.int} # 随机long com.test.bignumber=${random.long} # 10以内的随机数 com.test.test1=${random.int(10)} # 10-20的随机数 com.test.test2=${random.int[10,20]}
random.int*支持value参数和,max参数,当提供max参数的时候,value就是最小值。
数据类型自动转换
SpringBoot可以方便的将属性注入到一个配置对象中,并实现自动数据类型转换:
com.test.name=Isea533 com.test.port=8080 com.test.servers[0]=dev.bar.com com.test.servers[1]=foo.bar.com
对应对象为:
@ConfigurationProperties(prefix="com.test") public class Config { private String name; private Integer port; private List<String> servers = new ArrayList<String>(); public String geName(){ return this.name; } public Integer gePort(){ return this.port; } public List<String> getServers() { return this.servers; } }
上面的代码会自动将prefix=”com.test” 前缀为com.test 的属性注入进来,并会自动转换类型,当使用List 的时候需要注意在配置中对List 进行初始化!
嵌套属性注入
SpringBoot还支持嵌套属性注入:
name=Tom jdbc.username=root jdbc.password=root
对应的配置类:
@ConfigurationProperties public class Config { private String name; private Jdbc jdbc; class Jdbc { private String username; private String password; //getter... } public Integer gePort(){ return this.port; } public Jdbc getJdbc() { return this.jdbc; } }
jdbc开头的属性都会注入到Jdbc对象中。
相关文章推荐
- SpringBoot内部配置:“application.properties配置”和”使用XML配置”,读取属性文件中的内容,日志配置,Profile配置(学习:SpringBoot实战)
- Spring boot 学习笔记(1)——hello world创建,属性application.properties、 yml配置
- spring boot-application.properties配置文件属性
- 【spring boot】配置文件 application.properties 属性解析
- SpringBoot属性文件配置(application.properties/yml)
- Springboot属性文件application.properties配置大全,版本:1.5.4
- Appendix A. Spring boot 配置属性大全,史上最全application.properties--张振华.Jack
- (六)、SpringBoot 自定义配置属性,可以在application.properties中修改
- Spring Boot属性文件application.properties配置文档(全部)
- Spring Boot为我们准备了最佳的数据库连接池方案,只需要在属性文件(例如application.properties)中配置需要的连接池参数即可。
- spring boot application.properties 全部配置属性
- spring boot application properties配置详解
- spring boot application.properties 配置参数详情
- spring boot Application.properties 配置大全
- SpringBoot常用配置 application.yml /application.properties常用配置介绍
- spring boot application properties配置详解
- spring-boot默认的application.properties属性
- spring boot application properties配置详解
- Spring-Boot初学之配置文件application.properties(web性能)
- springboot项目接入配置中心,实现@ConfigurationProperties的bean属性刷新方案