Java 5春季5 我有多个配置文件,其中一个配置文件具有@Autowire依赖性。它不会在运行时抱怨,并且可以正常工作,但是intellij警告找不到这些bean。
想知道是否可以在配置类中使用@Autowire
或@Inject
。
为什么我要用它来配置我的websocket配置,而我的处理程序却需要依赖项。
答案 0 :(得分:2)
没关系。
@Configuration
表示一个类声明了@Bean
,可能需要依赖。 @Configuration
本身带有@Component
的元注释,并且“因此也可以像任何常规@Autowired
一样利用@Inject
/ @Component
的优势”。
我建议您将依赖项作为方法参数传递,而不是将其注入字段中。它使配置类保持清晰,并强调每种@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); }
}