如何将bean注入另一个类中的另一个bean声明?

时间:2017-06-08 00:09:14

标签: java spring spring-java-config

.my-class:focus .my-overlay, .my-class:hover .my-overlay { ... }

一种方法是为HCConfig创建一个autowire,然后使用该对象来调用dHC。但是,我想直接从文件-b自动连接dHC并使用它而不创建HCConfig的对象。我可以自动装配HCStrategy,但它不起作用,因为它是一个导入而不是我自己的类。

2 个答案:

答案 0 :(得分:0)

试试这个:

file-b.java

package com.abcd.app;
@Component
public class SCConfig {
   private final HCStrategy hcStrategy;

   @Autowired
   public SCConfig(HCStrategy hcStrategy){
       this.hcStrategy = hcStrategy;
   }

   public [return type] meow() {
     //you can use here hcStrategy bean
   }

}

答案 1 :(得分:0)

我不是100%肯定你想要达到的目标,但听起来你只需要在SCConfig中使用HCStrategy。在您的代码中,SCConfig实际上不是Spring配置,因为缺少@Configuration。除非您当然不在此处使用组件扫描,而是导入。如果HCConfig是importet,那么HCStrategy就在您的应用程序上下文中,因此您可以像SCConfig中的示例一样自动装配它。

file-a.java

package com.abcd.common;
import com.xyz.HCStrategy;
import com.xyz.DHC;

@Configuration
public class HCConfig {

    @Bean
    public HCStrategy dHC() {
        return new DHC();
    }
}

file-b.java

package com.abcd.app;

@Configuration
public class SCConfig {

    @Bean
    public meow(HCStrategy hcsStrategy) {
      ...
   }
}