Spring Boot提供了强大的配置系统,允许开发者通过配置文件轻松管理应用的配置。支持的主要配置文件格式有两种:application.properties
和application.yml
。
application.properties与application.yml
application.properties
和application.yml
是Spring Boot中用于配置的两种文件格式。properties文件以简单的键值对形式存在,而YAML(YAML Ain’t Markup Language)是一种更为人性化的数据序列化标准格式,支持层级结构。
application.properties
常见的.properties
配置文件格式如下:
# application.properties
server.port=8080
app.name=MySpringBootApp
app.description=This is my first Spring Boot application.
application.yml
相应的.yml
配置文件格式如下:
# application.yml
server:port: 8080app:name: MySpringBootAppdescription: This is my first Spring Boot application.
配置文件中的属性注入
Spring Boot支持将配置文件中的值注入到应用的beans中。这可以通过@Value
注解或者将配置属性绑定到一个类上来实现。
示例:属性注入
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class MyComponent {@Value("${app.name}")private String appName;// ...
}
另一种方法是使用@ConfigurationProperties
注解将配置属性绑定到一个类上。
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;@Component
@ConfigurationProperties(prefix = "app")
public class AppConfig {private String name;private String description;// standard getters and setters
}
然后,在application.properties
或application.yml
中定义相应的属性。
Profile-specific配置文件
Spring Boot允许为不同的环境提供不同的配置,这是通过使用Profile-specific配置文件实现的。
示例:Profile-specific配置文件
创建一个application-dev.properties
用于开发环境:
# application-dev.properties
server.port=8081
创建一个application-prod.properties
用于生产环境:
# application-prod.properties
server.port=8080
在运行应用时,可以通过设置spring.profiles.active
属性来激活特定的配置文件。
java -jar myapp.jar --spring.profiles.active=prod
或者在application.properties
或application.yml
中设置默认激活的Profile:
# application.properties
spring.profiles.active=dev
这样,当应用启动时,它会根据激活的Profile加载对应的配置。
通过使用application.properties
或application.yml
文件,结合属性注入和Profile-specific配置,Spring Boot为应用配置提供了灵活性和强大的控制能力。这使得在不同环境下管理和切换配置变得更加简单。