Spring 5,Java 8 我有多个配置文件,其中一个配置文件具有 @Autowire 依赖项。它不会在运行时提示并且工作正常,但 intellij 警告找不到这些 bean。
想知道在配置类中使用 @Autowire
或 @Inject
是否可以。
为什么我有它是因为它是我的 websocket 配置和我的处理程序需要依赖项。
最佳答案
没关系。
@Configuration
表示类声明可能需要依赖项的 @Bean
。 @Configuration
本身使用 @Component
进行元注释,“因此也可以利用 @Autowired
/@Inject
” > 就像任何常规的 @Component
一样”。
我建议您将依赖项作为方法参数传递,而不是将它们注入(inject)到字段中。它使配置类保持清晰,并强调每个 @Bean
方法所需的依赖关系。
我更喜欢
class C {
@Bean
public A a(B b) { new A(b); }
}
至
class C {
private final B b;
@Bean
public A a() { new A(b); }
}
关于spring - 在@Configuration类中使用@Autowire或@Inject可以吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55226669/