【问题标题】:is that ok to have @Autowire or @Inject in @Configuration class在@Configuration 类中有@Autowire 或@Inject 可以吗
【发布时间】:2019-08-09 03:13:40
【问题描述】:
春季 5,Java 8
我有多个配置文件,其中一个配置文件具有@Autowire 依赖项。它不会抱怨运行时间并且工作正常,但 intellij 警告找不到这些 bean。
想知道在配置类中有@Autowire 或@Inject 是否可以。
为什么我拥有它是 b/c,它是我的 websocket 配置,而我的处理程序需要依赖项。
【问题讨论】:
标签:
spring
spring-mvc-test
【解决方案1】:
没关系。
@Configuration 表示一个类声明了@Beans,这可能需要依赖。 @Configuration 本身带有 @Component 元注释,并且“因此也可以像任何常规 @Component 一样利用 @Autowired/@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); }
}