我有一个项目,我不应该使用@Autowired
来注入依赖项
我们在项目中创建了自己的Context,但是我无法访问getBean()
方法
我可以从上下文访问服务
在项目中,我要注入DAO
。目前,我的身份为@Autowired
,并且可以使用,但是我需要通过此解决方案来查找其他
我正在寻找如何在@Autowired
中注入和使用Spring 4.1
@Autowired
非常缓慢地将项目作为模块加载到另一个项目中,这一事实证明了这一点
答案 0 :(得分:0)
对不起,但声明
@Autowired会非常缓慢地将项目作为模块加载到另一个项目中,这是有道理的
对我来说非常可疑
可以降低加载速度的是项目中定义的组件扫描边界效率低下。 这是一个例子: 如果您有一个使用组件扫描“ com。”的项目,那么请使用spring fill尝试在“ com。”下的所有程序包中查找Bean,其中包括以“ com”包开头的所有第三方。 “ org。*”也是如此。因此,您应该准确定义应在何处搜索bean。
现在,话虽如此,通常您可以使用Java配置。这是一个示例:
具有自动装配
@Component
public class A {}
@Component
public class B {
@Autowired
private A a;
}
使用Java配置:
public class A{}
public class B {
private final A a;
public B(A a) {
this.a = a;
}
}
@Configuration
class MyConfig {
@Bean A a() {
return new A();
}
@Bean B b(A a) {
return new B(a);
}
}
Spring 4.x支持两种方式