2013-03-26 126 views
0

如果我使用彈簧配置來構造一個對象,是否可以爲客戶實例化該對象,而不需要它們導入我的彈簧配置?使用彈簧配置而不爲客戶創建彈簧依賴關係

如果不能這樣做,一個使用spring的客戶端總是需要使用spring的任何客戶端嗎?

如果可以這樣做,那麼正確的做法是什麼?事情是這樣的......

庫代碼:

public MyFactory() { 

    @Autowired 
    InitializedObject obj 

    public getInstance() { 
    return obj; 
    } 
} 

客戶端代碼:

import com.code.package.something.myfactory.MyFactory; 

... 

    InitializedObject obj = MyFactory.getInstance(); 
+0

另外,而不是'@ Autowired',使用'@Inject' – 2013-03-27 03:17:19

回答

0

其中一個選項是爲了避免春節註釋完全,只能用Spring配置文件的工作有構造或基於注射器的注射器。這樣,您的類就可以獨立於Spring代碼,只要您使用工廠或其他方法正確地提供依賴關係,您的客戶端就可以使用您的代碼。

+0

這聽起來很像我想知道的。你可以詳細瞭解一下只有構造函數或基於setter的注入是什麼意思嗎?任何代碼示例? – Jeremy 2013-03-26 23:54:42

+0

通過快速搜索,我發現這個鏈接:https://sites.google.com/site/arjunwebworld/Home/programming/spring-dependency-injection。通過它的第一部分沒有註釋,並應該工作 – 2013-03-27 07:53:32

0

自動裝配依存關係由Spring容器完成。如果沒有,那麼它將不會自動裝配。你需要確保客戶端有一個正確配置的Spring容器來自動調用你的依賴關係,或者自己設置一個(比如:使用ClassPathXmlApplicationContext