
Spring Boot2.0 @ConfigurationProperties深度解析
版权申诉
69KB |
更新于2024-09-11
| 176 浏览量 | 举报
收藏
"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校验。通过合理使用,我们可以让应用程序的配置更加清晰、易于管理和维护。
相关推荐










假装高冷小姐姐
- 粉丝: 281
最新资源
- VB.NET实现的小区物业管理系统及源代码
- 操作系统及多线程编程课件下载资源分享
- Visual C++串口编程调试精灵:技术与实例解析
- Winsock聊天工具:快速实现在线通讯
- 轻松去除Matlab运行时出现的黑框
- C(#)网络蜘蛛源码开发指南
- 风越.net代码生成器FireCode Creator v1.4特色功能介绍
- QT跨平台应用界面开发权威指南
- Java+Sql项目开发源代码及学习指南
- 深入理解EJB技术实例92与实例94解析
- C语言实现可变分区存储管理模拟
- 下载搞笑俄罗斯方块Delphi源码完整版
- 交通行业GIS系统开发:基于MapX+VB技术
- CD4XXX系列芯片资料大全:设计者的首选
- 深入理解JAVA双线程编程实例61详解
- 粒子群算法在求解非线性方程组中的应用
- 一键生成Cab包的高效制作工具
- 深入解析RUP软件开发的最佳实践方法
- AT89C51单片机中文官方手册完整指南
- J2ME手机游戏贪吃蛇源码解析与实践
- JAVA远程控制实现及源代码分析
- C++ MFC打造飞行射击游戏源码解析
- iBatis基础入门教程与示例代码解析
- 经典英语短文30篇:学习与背诵必备