Spring boot 如何确保方法仅在使用@ConfigurationProperties注入所有属性后运行

Spring boot 如何确保方法仅在使用@ConfigurationProperties注入所有属性后运行,spring-boot,Spring Boot,我有一个配置类,需要在此类中定义一些bean,如: @Configuration @ConfigurationProperties(prefix = "mydb") public class MyConfig { private String user; private String password; @Bean public MyBean myBean() { ... some logic that needs the v

我有一个配置类,需要在此类中定义一些bean,如:

@Configuration
@ConfigurationProperties(prefix = "mydb")
public class MyConfig {
    private String user;
    private String password;

    @Bean
    public MyBean myBean() {
        ... some logic that needs the variables "user" and "password"
    }
}
我的属性文件
application.yml
如下所示:

mydb:
  user: me
  password: pass
我的问题是,如何确保在创建MyBean
MyBean
时变量
user
password
可用?
我尝试使用
@PostConstruct
作为方法,但它不起作用。我想了解各种解决方案。

创建您的
@ConfigurationProperties
类作为自己的类,独立于其他功能,并在需要的地方注入它

@Data // getters and setters
@ConfigurationProperties(prefix = "mydb")
public class MyDbProperties {
    private String user;
    private String password;
}


@Configuration
@EnableConfigurationProperties(MyDbProperties.class)
public class MyConfig {
    @Autowired
    private MyDbProperties myDbProperties;

    @Bean
    public MyBean myBean() {
        ... some logic that needs the variables "user" and "password"
    }
}
这通常是一个很好的模式,因为Spring框架是以类似的方式开发的。例如:


创建您的
@ConfigurationProperties
类作为自己的类,独立于其他功能,并在需要时将其注入

@Data // getters and setters
@ConfigurationProperties(prefix = "mydb")
public class MyDbProperties {
    private String user;
    private String password;
}


@Configuration
@EnableConfigurationProperties(MyDbProperties.class)
public class MyConfig {
    @Autowired
    private MyDbProperties myDbProperties;

    @Bean
    public MyBean myBean() {
        ... some logic that needs the variables "user" and "password"
    }
}
这通常是一个很好的模式,因为Spring框架是以类似的方式开发的。例如: