在我的項目中,我有一個用org.springframework.stereotype.Service標記註釋的接口。如何在Spring 3.0服務中實現工廠模式
我對這個接口有兩種不同的實現。
在我的管理bean中,我注入了接口Service類並使用它的方法。
現在我的要求是,在運行時我必須選擇特定的實現(可以說基於登錄用戶組),以便可以調用各自的邏輯。
根據我的理解,我們可以在java中使用Factory模式來實現此目的並實現相同。
我們如何在SPRIng中實現這個?
在我的項目中,我有一個用org.springframework.stereotype.Service標記註釋的接口。如何在Spring 3.0服務中實現工廠模式
我對這個接口有兩種不同的實現。
在我的管理bean中,我注入了接口Service類並使用它的方法。
現在我的要求是,在運行時我必須選擇特定的實現(可以說基於登錄用戶組),以便可以調用各自的邏輯。
根據我的理解,我們可以在java中使用Factory模式來實現此目的並實現相同。
我們如何在SPRIng中實現這個?
除了上面建議的相關話題,還有一個很好的thread on JavaRanch。
你可以用@Autowired同時使用
@Qualifier( 「myServiceImpl1」)註解。在 這種情況下,該接口的特定實現將被注入 。您還應該在@Component中使用相同的名稱, @Service或@Repository註釋例如
@Service("myServiceImpl1")
public class MyServiceImpl1 implements MyService{}
public class Consumer{
@Autowired
@Qualifier("myServiceImpl1")
public MyService myServiceImpl1;
}
@Primary與@Component,@Service或在您的實現類@Repository 註釋在一起,在這種情況下,這個 實施將在默認情況下被注入。
如果您使用@Autowired標記某種接口類型的列表,則將會注入此接口的所有可用實現。
@Autowired
public List<MyService> allAvailableImplementations;
死鏈接的情況。請在這裏總結或引用關鍵位。只有鏈接的答案可能會被刪除,恕不另行通知。謝謝。 –
相關:http://stackoverflow.com/questions/7537620 –