首页 > 解决方案 > 如何通过在应用程序启动时初始化的属性 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。

标签: springspring-bootspring-properties

解决方案


您可以@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注释。


推荐阅读