spring - 如何通过在应用程序启动时初始化的属性 bean 提供 Spring 引导属性
问题描述
我有一个用例,其中我有一些包含属性的类,并在应用程序启动时从外部源初始化现在我希望 Spring Boot 自动配置的 bean 像数据源一样从这些属性类中获取属性。
例子 :
@Configuration
public class A {
String url;
String password;
String username:
.
.
.
othere datasource related fields
.
.
.
getters...
setters...
}
现在这个 bean 将在启动时创建并从外部源获取值。数据源 bean(sql server)的自动配置如何从这个类中获取值,以及如何在数据源之前强制初始化这个 bean。
解决方案
您可以@ConfigurationProperties
为此使用带注释的类。它可用于从文件中读取配置.properties
或从.yml
文件中读取配置。
使用示例:
@Configuration
@PropertySource("classpath:configprops.properties")
@ConfigurationProperties(prefix = "myprop")
public class ConfigProperties {
private String property1;
private String property2
// getters and setters
}
在.properties
文件中,我们存储这样的字段:
#My properties
myprop.property1=property
myprop.property2=another property
现在,根据 Spring 文档,注释一个类就足够了@ConfigurationProperties
,以便将其转换为 bean 并使其能够自动装配。通常人们也倾向于应用@Configuration
注释。
推荐阅读
- java - 如何使用顺序搜索在数组中找到相应的负值?
- c++ - 在 vulkan 光线追踪中让 uvs 正常工作时遇到一些问题
- sql - Sql 创建新行并更新关联值
- observable - 为什么必须在 `single` 之前调用 `toBlocking`?
- javascript - 当内容滚动到视图中时激活动画
- android - registerForActivityResult 在选择浏览其他应用程序中的文件后返回空的结果列表
- javascript - 使用循环数据 json 值并将每个值显示到卡片中
- javascript - MySQL 连接仅使用 PHP 被拒绝,Javascript 正在我的服务器上运行
- sas - 将一个表拆分为三个表
- swift - 在 int swift 的数组上找到最大的三个数字