Spring框架bean为空

问题描述 投票:0回答:1

在我的 Spring Boot 应用程序中,我有一个

 @Autowired ConfigurableEnvironment env;
@RestController 类中的对象。 当我到达正在调用的端点时

env.getPropertySources(); //Just for the sake of testing. not a real use case

env 对象不为 null。

虽然我有一个外部依赖项,但我已添加到 build.gradle 中。 该库有一个 @Configuration 类,该类有一个

@Autowired ConfigurableEnvironment
对象。当库尝试使用该对象时,该对象为空。

如何强制从外部库加载bean到最后。

我尝试在我的项目中创建一个 ApplicationListener,它会销毁该 bean 并重新创建它。此 ApplicationListener 有一个

@Order(Ordered.LOWEST_PRECEDENCE)
,用于强制在创建所有其他 bean 后重新创建此外部 bean。 但这不太有效。

java spring spring-boot
1个回答
0
投票

要与

@Autowired
一起使用,类需要用
@Configuration
@Component
进行注释。并且其包需要包含在组件扫描中。在你的情况下,很可能不是因为它是一个外部库。

解决方案

为主应用程序类添加注释。像这样:

@ComponentScan("your-library-class-package")
© www.soinside.com 2019 - 2024. All rights reserved.