繁体   English   中英

使用 Spring 4.1 在项目中注入依赖项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM