2011-05-04 89 views

回答

4

您必須從bean工廠獲取bean,而不是直接創建實例。

例如,以下是如何使用註釋執行此操作。首先,你需要更多的添加到您的類的聲明:

// Annotate to declare this as a bean, not just a POJO 
@Component 
class A { 
    @Autowired 
    B b; 
} 

接下來,你這樣做每個應用程序一次:

AnnotationConfigApplicationContext factory = 
     new AnnotationConfigApplicationContext(); 
factory.register(A.class); 
factory.register(B.class); 
// Plus any other classes to register, or use scan(packages...) method 
factory.refresh(); 

最後,您現在可以得到的情況下,豆:如果Spring實例化它作爲一個bean

// Instead of: new A() 
A a = factory.getBean(A.class); 
+0

我注意到你也在使用XML配置。沒關係;只需獲取應用程序上下文(也是bean工廠)並使用它的'getBean'方法。 – 2011-05-04 08:03:34

3

Spring將自動裝配僅在A對象。如果你實例化自己,Spring對此一無所知,所以沒有任何東西會自動裝配。

相關問題