Spring Boot的配置方式
Spring Boot中遵循了约定优于配置
的原则,故我们在构建Spring Boot Application时非常轻松。在实际生产过程中,我们需要针对工程做额外的配置,那么我们该怎么使用额外的配置呢?
Spring Boot允许使用外部化配置,以便我们可以在不同的环境中使用相同的应用程序代码。 这些配置可以使用属性文件,YAML文件,环境变量和命令行参数等来外化配置。 属性值可以使用@Value
注释直接注入到bean中,通过Spring的Environment抽象访问或通过@ConfigurationProperties
绑定到结构化对象。
Spring Boot使用一个非常特殊的PropertySource顺序,该顺序被设计为允许对值进行明智的重写。 属性按以下顺序考虑:
-
Devtools global settings properties on your home directory (
~/.spring-boot-devtools.properties
when devtools is active). -
@TestPropertySource
annotations on your tests. -
@SpringBootTest#properties
annotation attribute on your tests. -
Command line arguments.
-
Properties from
SPRING_APPLICATION_JSON
(inline JSON embedded in an environment variable or system property) -
ServletConfig
init parameters. -
ServletContext
init parameters. -
JNDI attributes from
java:comp/env
. -
Java System properties (
System.getProperties()
). -
OS environment variables.
-
A
RandomValuePropertySource
that only has properties inrandom.*
. -
Profile-specific application properties outside of your packaged jar (
application-{profile}.properties
and YAML variants) -
Profile-specific application properties packaged inside your jar (
application-{profile}.properties
and YAML variants) -
Application properties outside of your packaged jar (
application.properties
and YAML variants). -
Application properties packaged inside your jar (
application.properties
and YAML variants). -
@PropertySource
annotations on your@Configuration
classes. -
Default properties (specified using
SpringApplication.setDefaultProperties
).
本文主要讨论在application.properties
配置文件中来进行额外的配置,其他的使用配置的方法详情参考这里。
application.properties文件的使用
SpringApplication将从以下位置的application.properties
文件加载属性,并将它们添加到Spring环境:
- 当前路径下的/config子目录。
- 当前路径。
- classpath路径下的/config子路径。
- classpath路径
列表按优先级排序(在列表中较高的位置定义的属性覆盖在较低位置定义的属性)。
在上文的程序中,在resources
目录添加application.properties
文件,添加如下配置
#tomcat端口号
server.port=8888
启动Spring Boot程序,此时我们访问程序的端口号就变为了8888。
更多application.properties
的配置,请参考官方文档。
本文示例程序请点此获取。
详细资料请参考Spring Boot官网。
网友评论