我将Spring Boot与节俭服务器一起使用,并且我有两个带有两个bean生成方法的@Configuration类,代码如下:

@Configuration
public class EagleBeanCreator {

    @Bean(destroyMethod = "destroy")
    public EagleRestClient build() {
        EagleRestClient client = new EagleRestClient();
        // some set values code
        return client;
    }
}


还有一个:

@Configuration
public class EagleServiceBuilder {

    @Autowired
    private EagleRestClient eagleProxy;

    @Bean
    public EagleService eagleService() {
        EagleService service = new EagleService();
        System.out.println(eagleProxy);
        service.setEagleProxy(eagleProxy);
        return service;
    }
}


但是,当我运行spring-boot:run时,它将为“ System.out.println(eagleProxy);”输出null。
为什么?

================================================= =====

我知道二传手注入或构造函数注入的作品。

最佳答案

因为加载EagleBeanCreatorEagleServiceBuilder的顺序不确定。您可以使用@Order@ConditionalOnClass来确保EagleBeanCreator首先进行初始化。

08-03 13:33