Spring Boot2.0 @ConfigurationProperties深度解析
版权申诉
110 浏览量
更新于2024-09-11
收藏 69KB PDF 举报
"Spring Boot2.0 @ConfigurationProperties使用详解"
在Spring Boot 2.0中,`@ConfigurationProperties` 是一个强大的特性,它允许开发者将配置文件(如application.properties或application.yml)中的键值对映射到Java对象的字段上,从而实现配置的强类型绑定。这个特性使得我们可以更安全、更方便地管理和使用应用程序的配置。
首先,我们需要在`pom.xml`文件中设置Spring Boot的父级依赖,并引入必要的库。确保你的`pom.xml`包含以下内容:
```xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional> <!-- 可选,用于生成元数据 -->
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional> <!-- 可选,用于简化对象模型 -->
</dependency>
</dependencies>
```
添加`spring-boot-starter-web`是为了引入JSR-303校验支持,如果你不需要这个功能,可以不添加。`spring-boot-configuration-processor`库是可选的,但强烈推荐,因为它会在编译时自动生成配置元数据,这对于IDE的代码提示和自动完成非常有帮助。`lombok`库则可以用来简化Java类的编写,通过注解自动创建getter、setter等方法。
接下来,创建一个Java类来绑定配置文件中的属性。例如,我们创建一个`ApplicationProperties`类:
```java
import org.springframework.boot.context.properties.ConfigurationProperties;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
@ConfigurationProperties(prefix = "app")
public class ApplicationProperties {
@NotNull
private String name;
@Min(5)
private int port;
// Lombok注解,省略getter和setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
}
```
在这里,`@ConfigurationProperties(prefix = "app")`注解指定了配置前缀,意味着配置文件中的`app.name`和`app.port`将被映射到这个类的`name`和`port`字段。`@NotNull`和`@Min(5)`是JSR-303校验注解,用于验证配置的合法性。
最后,在Spring Boot的主类中启用`@EnableConfigurationProperties`,使配置生效:
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@SpringBootApplication
@EnableConfigurationProperties(ApplicationProperties.class)
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
```
现在,你可以在应用启动时通过`ApplicationProperties`访问配置信息。例如,你可以在某个服务中注入`ApplicationProperties`并使用:
```java
@Service
public class MyService {
private final ApplicationProperties properties;
public MyService(ApplicationProperties properties) {
this.properties = properties;
}
public void doSomething() {
System.out.println("应用名称: " + properties.getName());
System.out.println("监听端口: " + properties.getPort());
}
}
```
总结起来,`@ConfigurationProperties`是Spring Boot中用于管理配置的强大工具,它可以将配置文件中的键值对映射到Java对象,提供强类型的安全性,并且支持JSR-303校验。通过合理使用,我们可以让应用程序的配置更加清晰、易于管理和维护。
2023-01-28 上传
2018-12-27 上传
2021-05-16 上传
点击了解资源详情
2023-10-11 上传
2023-08-09 上传
2020-08-25 上传
2023-09-15 上传
2024-11-19 上传
假装高冷小姐姐
- 粉丝: 281
- 资源: 948
最新资源
- react_station:一个未来的React项目的工作空间
- awesome-tgcalls:精选的电报电话项目清单
- genesys:Genesys是与Visual Studio Code一起使用的原型工具包。 它使设计人员和UI开发人员可以快速创建低保真至高保真原型,甚至是可用于生产的UI。 Genesys为大多数主要设计系统提供支持
- 杭州地区天气预报易语言源码例程.zip易语言项目例子源码下载
- DSI-Modificacion-Practica7
- 生活服务网站模版
- 青春海洋全站程序
- Web
- recipes-gatsby
- 汉字转换拼音.zip易语言项目例子源码下载
- Keystroke-开源
- woocommerce-export-customer-email:WooCommerce 商店从管理面板导出客户账单电子邮件的基本功能
- MacroTracker
- 岳家楼住宅小区8号楼钢筋工程施工方案.zip
- information-management-system
- 实用的IP转向程序