[英]Injecting dependencies in a project using Spring 4.1
我有一个项目,我不应该使用@Autowired
来注入依赖项
我们已经在项目中创建了我们自己的 Context 并且我无权访问getBean()
方法
我可以从上下文访问服务
在项目中,我有要注入的DAO
。 目前我有@Autowired
并且它有效,但我需要通过这个解决方案并找到其他
我正在寻找如何在Spring 4.1
注入和使用 bean be wear @Autowired
这是因为@Autowired
非常减慢将项目作为模块加载到另一个项目的速度
对不起,但声明
这是因为@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 支持这两种方式
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.