(1)读取优先顺序
a - 命令行参数 --key=value
引用
$ mvn spring-boot:run -Drun.arguments="--server.port=9090,--server.context-path=/test"
$ java -jar target/xxx.jar --server.port=9090 --server.context-path=/test
b - JVM参数 -Dkey=value
引用
$ mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Dserver.port=9090 -Dserver.context-path=/test"
$ java -jar target/xxx.jar -Dserver.port=9090 -Dserver.context-path=/test
c - 环境变量
d - application-{profile}.properties
e - application.properties
*** 还有很多地方可以设置,以上只是常用的!
(2)文件格式
同时支持properties或YAML。
application.yml
引用
prefix:
stringProp1: propValue1
stringProp2: propValue2
intProp1: 10
listProp:
- listValue1
- listValue2
mapProp:
key1: mapValue1
key2: mapValue2
application.properties
引用
prefix.stringProp1=propValue1
prefix.stringProp2=propValue2
prefix.intProp1=10
prefix.listProp[0]=listValue1
prefix.listProp[1]=listValue2
prefix.mapProp.key1=mapValue1
prefix.mapProp.key2=mapValue2
变量可以嵌套使用
引用
project.base-dir=file:///D:/springbootsample/spring-boot-demo1
spring.thymeleaf.prefix=${project.base-dir}/src/main/resources/templates/
(3)文件位置
src/main/resources/config/application.properties
src/main/resources/application.properties
*** 也可以通过@PropertySource("classpath:config.properties") 来读入任意其他设置文件。
(4)多环境配置
通过设置参数“spring.profiles.active”即可切换设置文件。
引用
application.properties
application-develop.properties
application-test.properties
application-product.properties
(5)设置值的Key支持Relaxed binding
以下四种写法都是可以的。
- person.firstName 标准骆驼式语法
- person.first-name 横线 多用于.properties 或 .yml
- person.first_name 下划线 多用于.properties 或 .yml
- PERSON_FIRST_NAME 大写 多用于环境变量
(6)读取配置值
a - @Value()
public class SamplePropertyLoading {
@Value("${prefix.stringProp1}")
private String stringProp1;
@Value("${prefix.stringProp2}")
private String stringProp2;
@Value("${prefix.intProp1}")
private Integer intProp1;
@Value("${prefix.listProp}")
private List<String> listProp;
@Value("${prefix.mapProp}")
private Map<String, String> mapProp;
// ...
}
@Value支持二元操作符并支持嵌套:
引用
#{expression?:default value}
${property:default value}
b - @ConfigurationProperties
@Component
@ConfigurationProperties(prefix = "prefix")
public class SampleProperty {
private String stringProp1;
private String stringProp2;
private Integer intProp1;
private List<String> listProp;
private Map<String, String> mapProp;
// ...
}
c - Environment
@Autowired
private Environment env;
String errorPath = env.getProperty("server.error.path");
(7)常用设置
官方文档里有详细的设置说明,用什么设置什么即可。
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
引用
server.port=
server.context-path=
server.session.timeout=
logging.level=
spring.messages.cache-seconds=
spring.thymeleaf.cache=
spring.velocity.cache=
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=
spring.mvc.throw-exception-if-no-handler-found=
分享到:
相关推荐
在本篇“Spring Boot入门 - 基础篇(11)- 数据源配置”中,我们将探讨如何在Spring Boot项目中配置数据源,以便连接到数据库并执行相关的CRUD操作。Spring Boot以其自动化配置和简化开发流程而受到广泛欢迎,它使得...
在上一部分中,我们可能已经介绍了Spring Boot的基础知识和快速入门。在此阶段,我们将更进一步,通过代码示例深入了解Spring Boot的核心特性以及如何集成常用的数据库连接池Druid和SQL监控工具P6Spy。 首先,...
总的来说,这些视频教程构成了一个全面的Spring Boot入门学习路径,从基础的框架集成到实际业务场景的应用,旨在帮助开发者快速掌握Spring Boot开发的技能,并提升在后端Java项目中的实践能力。通过学习这些内容,...
- 学习如何使用Spring Boot简化Dubbo的配置。 - 理解并实践服务治理,如负载均衡、熔断、降级策略等。 总之,这篇文章将帮助初学者快速上手Dubbo,了解其基本架构和工作原理。随着对Dubbo的深入理解和实践,可以...
本篇将深入讲解Spring的基础知识,包括如何创建简单的Spring程序,理解Spring配置文件的结构,以及如何应用ApplicationContext接口。此外,我们还将探讨Setter依赖注入的概念,这是Spring中最基础的依赖管理方式。 ...
入门篇通常会涵盖基础概念和基本用法,帮助初学者快速了解并开始实践。 基于这个主题,以下是关于Spring与RabbitMQ集成的一些关键知识点: 1. **RabbitMQ基础**:首先需要理解RabbitMQ的基本概念,如交换机...
- **职业发展**:尽管近年来出现了许多新的技术栈和框架,如Spring Boot、Docker等,但J2EE仍然是企业级开发领域的重要组成部分。因此,掌握J2EE对于寻求在企业软件开发领域发展的程序员来说仍然非常有价值。 **Q...
在本篇文章中,我们将深入探讨Kafka的基础知识,包括如何快速搭建Kafka实例以及理解Kafka消费者组的概念。 ### 1. Kafka的基本概念 - **主题(Topic)**: 在Kafka中,数据被组织成主题,类似于数据库中的表,是...
本篇将详细介绍如何利用Ztree和treeTable来实现这样的功能。 Ztree是一款基于JavaScript的树形插件,它提供了丰富的功能和良好的性能,广泛应用于网页端的数据展示。Ztree_v3是其第三个主要版本,具有更多的特性和...
此外,Dubbo还支持与其他组件如Spring Boot、Spring Cloud的集成,进一步增强其灵活性和扩展性。 总之,Dubbo生产者框架的搭建是一个系统性的过程,涉及多个层面的配置和编程。初学者需要耐心学习,逐步理解每一个...
随着技术的发展,现代Java学习可能还会涉及Spring Boot、Spring Cloud等框架,以及微服务架构、容器化(Docker)和持续集成/持续部署(CI/CD)工具。理解并掌握这些工具和技术将使你在Java开发领域更加得心应手。