Java Spring引导中带有YAML配置的初始化Bean

Java Spring引导中带有YAML配置的初始化Bean,java,spring,spring-boot,Java,Spring,Spring Boot,在SpringBoot中初始化bean或服务时,我想阅读一些属性,比如DB访问配置 有人知道好方法吗 这是我当前的代码片段 public class SampleApplication implements ApplicationRunner { @Autowired private YAMLConfig myConfig; @Override public void run(ApplicationArguments args) throws Exception

在SpringBoot中初始化bean或服务时,我想阅读一些属性,比如DB访问配置

有人知道好方法吗

这是我当前的代码片段

public class SampleApplication implements ApplicationRunner
{
    @Autowired
    private YAMLConfig myConfig;

    @Override
    public void run(ApplicationArguments args) throws Exception
    {
        System.out.println(myConfig != null); //YAMLConfig has been intialized here
    }

    public SampleApplication()
    {
        System.out.println(myConfig == null); //myConfig is null
    }

    @Configuration
    public static class Config
    {
        @Bean
        @ConditionalOnProperty(value = {"batch.execute"}, havingValue = "SampleApplication")
        public SampleApplication sampleApplication()
        {
            return new SampleApplication();
        }
    }
}

@Configuration
@EnableConfigurationProperties
@ConfigurationProperties
public class YAMLConfig
{
    private String environment;

    public String getEnvironment()
    {
        return environment;
    }

    public void setEnvironment(String environment)
    {
        this.environment = environment;
    }
}

谢谢你看这个

SampleApplication
类中创建此方法

@PostConstruct
public void init() {
    // at this point, all the dependency injection has happened already
    myConfig.doStuff()
}

在所有bean初始化完成后,spring会自动调用它。

对此没有正确的答案。任何适合你需要的。您使用
@ConfigurationProperties
的方式非常好。您也可以对数据库访问配置执行相同的操作。如果你出示yml,也许我们能帮上忙