1

我对使用另一个项目生成的 bean 有疑问。更详细地说:

我有一个项目A如下

public A {
public void print()
{
System.out.println("Hello World");
}
}

配置类如下

@Configuration
public class AConfig {  
@Bean
public A a()
{
    A bean = new A();
    return A;
}
}

现在我有一个新项目 B,其类如下

public B {
A a;
public setA()
{
this.a = a;
}
public static void main(String[] args)  
{ 
System.out.println(a.print());
}
}

B的配置类如下

@Configuration
@Import(AConfig.class)
public BConfig
{
@Bean
public B b()
{
B bean = new B();
**b.setA(a());-----------------This is not correct. How can i get Instance of class A NOw????**
}
}

谢谢

4

1 回答 1

4

合并@Configuration

如果 bean 紧密耦合,只需将它们放在同一个类中:

@Configuration
public class AConfig {  
    @Bean
    public A a() {
        return new A();
    }

    @Bean
    public B b() {
        B b = new B();
        b.setA(a());
        return b;
    }
}

注入另一个@Configuration

@Configurationclass 只是 Spring 中 bean 的一个特例:

@Configuration
public class BConfig {  

    @Autowired
    private AConfig aConfig;

    @Bean
    public B b() {
        B b = new B();
        b.setA(aConfig.a());
        return b;
    }
}

将依赖项注入@Configuration

@Configuration
@Import(AConfig.class)
public class BConfig {  

    @Autowired
    private A a;

    @Bean
    public B b() {
        B b = new B();
        b.setA(a);
        return b;
    }
}
于 2012-05-29T20:30:19.153 回答