在@Configuration class 中添加@Autowire 或@Inject 可以吗
is that ok to have @Autowire or @Inject in @Configuration class
Spring 5 个,Java 8 个
我有多个配置文件,其中一个配置文件具有@Autowire 依赖项。它不会在 运行 时间抱怨并且工作正常但 intellij 警告找不到那些 beans。
想知道是否可以在配置 class 中使用 @Autowire
或 @Inject
。
为什么我有它是 b/c 它是我的 websocket 配置和我的处理程序需要依赖项。
没关系。
@Configuration
表示 class 声明了可能需要依赖项的 @Bean
。 @Configuration
本身用 @Component
和 "therefore may also take advantage of @Autowired
/@Inject
like any regular @Component
".
进行元注释
我建议您将依赖项作为方法参数传递,而不是将它们注入到字段中。它保持配置 class 清晰,并强调每个 @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 5 个,Java 8 个 我有多个配置文件,其中一个配置文件具有@Autowire 依赖项。它不会在 运行 时间抱怨并且工作正常但 intellij 警告找不到那些 beans。
想知道是否可以在配置 class 中使用 @Autowire
或 @Inject
。
为什么我有它是 b/c 它是我的 websocket 配置和我的处理程序需要依赖项。
没关系。
@Configuration
表示 class 声明了可能需要依赖项的 @Bean
。 @Configuration
本身用 @Component
和 "therefore may also take advantage of @Autowired
/@Inject
like any regular @Component
".
我建议您将依赖项作为方法参数传递,而不是将它们注入到字段中。它保持配置 class 清晰,并强调每个 @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); }
}