spring - 在@Configuration 类中有@Autowire 或@Inject 可以吗
问题描述
Spring 5, Java 8 我有多个配置文件,其中一个配置文件具有@Autowire 依赖项。它不会抱怨运行时间并且工作正常,但 intellij 警告找不到这些 bean。
想知道这是否可以拥有@Autowire
或@Inject
在配置类中。
为什么我拥有它是 b/c 它是我的 websocket 配置和我的处理程序需要依赖项。
解决方案
没关系。
@Configuration
表示一个类声明@Bean
了可能需要依赖项的 s。@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); }
}
推荐阅读
- pingfederate - PingFederate 健康检查自动化
- mongodb - 当我们知道位置时,在猫鼬中更新二维数组
- php - A Database Error Occurred Error Number: 1062 Duplicate entry '5' for key 'PRIMARY'
- javascript - 从具有动态内容的 vuejs 中的方法打开模式
- nginx - 如何根据动态 url 参数配置 nginx proxy_pass?
- javascript - 更改屏幕后反应本机保存按钮状态
- asp.net - Unable to find the path to the view.cshtml file in the Razor Class Library(The Razor Class Library is .dll)
- java - How do I instantiate an object in java?
- java - 安装hadoop并编写map reduce程序
- bash - Using piped commands to get a specific output in Bash