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 に答える