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

时间:2019-11-28 12:35:45

标签: java spring

我有一个项目,我不应该使用@Autowired来注入依赖项

我们在项目中创建了自己的Context,但是我无法访问getBean()方法

我可以从上下文访问服务

在项目中,我要注入DAO。目前,我的身份为@Autowired,并且可以使用,但是我需要通过此解决方案来查找其他

我正在寻找如何在@Autowired中注入和使用Spring 4.1

@Autowired非常缓慢地将项目作为模块加载到另一个项目中,这一事实证明了这一点

1 个答案:

答案 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支持两种方式