您的位置:首页 > 财经 > 金融 > 网页报价_制作图片的软件app有哪些_seo案例视频教程_优化设计七年级上册数学答案

网页报价_制作图片的软件app有哪些_seo案例视频教程_优化设计七年级上册数学答案

2025/2/26 23:14:22 来源:https://blog.csdn.net/m0_70484213/article/details/145858974  浏览:    关键词:网页报价_制作图片的软件app有哪些_seo案例视频教程_优化设计七年级上册数学答案
网页报价_制作图片的软件app有哪些_seo案例视频教程_优化设计七年级上册数学答案

Spring boot中的@ConfigurationProperties注解

@ConfigurationProperties 是 Spring Boot 提供的一个强大注解,用于将配置文件(如 application.propertiesapplication.yml)中的配置绑定到一个 Java 对象中。它不仅简化了配置管理,还提供了类型安全松散绑定校验等功能。以下是对 @ConfigurationProperties 的详细解析。

1.核心概念
1.1作用

@ConfigurationProperties 用于将配置文件中的属性绑定到一个 POJO(Plain Old Java Object)类的字段上。它允许开发者以面向对象的方式管理配置,而不是通过松散的键值对。

1.2使用场景
  • 支持松散绑定,允许配置文件中的键名与 Java 字段名不完全一致。
  • 支持嵌套配置,可以将复杂的配置结构化管理。
  • 支持默认值和校验
  • 集中管理应用程序的配置。
  • 提供类型安全的配置访问。
2.基本使用
2.1定义配置类

假设你有一个配置文件 application.properties,内容如下:

这些内容都是以app开头的,

app.firstName=Donald
app.secondName=Trump
app.yourHometown=NewYork

你可以通过定义一个带有 @ConfigurationProperties 注解的类来绑定这些配置:

设置@ConfigurationProperties的prefix 属性为 “app”,

@Component
@Data
@ConfigurationProperties(prefix = "app")
public class SimpleConfig {private String firstName;private String secondName;private String yourHometown;
}
2.2使用配置

在应用程序中,你可以通过注入这个配置类来访问配置值:

@Service
public class AppService {@Autowiredprivate SimpleConfig simpleConfig;public void printAppInfo() {//可以分别打印属性的值}
}
3.松散绑定

@ConfigurationProperties 支持松散绑定,这意味着配置文件中的键名可以使用不同的格式(如-、_等),Spring Boot 会自动匹配到对应的 Java 字段。

以下配置都能绑定到 SimpleConfig类的字段上:

app.first-name=Gulimall
app.second-name=An e-commerce platform
app.your-Hometown=1.0.0
4.嵌套配置

@ConfigurationProperties 支持嵌套配置,可以将复杂的配置结构化管理。

配置文件
app.firstName=Donald
app.secondName=Trump
app.yourHometown=NewYorkapp.database.url=jdbc:mysql://localhost:3306/America
app.database.username=root
app.database.password=123456
嵌套配置类
@Component
@Data
@ConfigurationProperties(prefix = "app")
public class SimpleConfig {private String firstName;private String secondName;private String yourHometown;@Datapublic static class Database {private String url;private String username;private String password;}}
使用嵌套配置
@Service
public class AppService {@Autowiredprivate SimpleConfig simpleConfig;public void printAppInfo() {System.out.println("Database URL: " + appConfig.getDatabase().getUrl());}}
5.默认值和校验
5.1默认值

可以通过字段赋值提供默认值:

@Component
@Data
@ConfigurationProperties(prefix = "app")
public class SimpleConfig {private String firstName="Donald";private String secondName="Trump";private String yourHometown;
}
5.2校验

@ConfigurationProperties 支持使用JSR-303校验注解(如 @NotNull、@Size 等)对配置进行校验。

具体参考JSR-303校验注解的使用方法

6.集合绑定

配置文件

app.languages[0]=Java
app.languages[1]=Python
app.languages[2]=JavaScript
配置类
@Component
@ConfigurationProperties(prefix = "app")
public class AppConfig {private List<String> languages = new ArrayList<>();
}
7.动态配置更新

@ConfigurationProperties 支持与 Spring 的 @RefreshScope 注解结合,实现配置的动态更新。这对于使用 Spring Cloud Config 的微服务架构非常有用。

@RefreshScope
@Component
@ConfigurationProperties(prefix = "app")
public class SimpleConfig {private String name;
}

当配置中心的配置发生变化时,@RefreshScope 会重新加载配置类中的值。


补充:可以配置以下依赖,该依赖会扫描项目中使用了 @ConfigurationProperties 注解的类,提供配置文件的自动提示补全功能

<dependency><groupId>org.springframework.boot</group><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com