我有2個稅收實施類別IndianTaxCalculation
和USTAxCalculation
,它們具有用於calculateTax()
方法的實施方案。我需要基於用戶登錄動態填充類,無論是印度還是美國,相應的稅務計算方法應該調用。我怎樣才能在Spring中實現這一點?春季動態注射
Q
春季動態注射
0
A
回答
1
嘗試這樣:
@Autowired
@Qualifier("indian")
private TaxCalculation indianTax;
@Autowired
@Qualifier("us")
private TaxCalculation usTax;
public void calculateTaxes(Client client) {
if (client.isFromIndia()) {
indiaTax.calculate(client);
} else if (client.isFromUS()) {
usTax.calculate(client);
}
}
0
我覺得下面的話題可以回答你的問題。請參考 How to do conditional auto-wiring in Spring?
0
您可以創建像定位服務:
public class ServiceLocator implements ApplicationContextAware
{
private static ApplicationContext context;
public void setApplicationContext(ApplicationContext context)
{
this.context = context;
}
public static <T> T getServiceBean(Class<T> serviceClass, String beanName)
{
return context.getBean(beanName, serviceClass);
}
}
和您的服務,如:
public void calculateTaxes(Client client)
{
if (client.isFromIndia())
{
ServiceLocator.getServiceBean(TaxCalculation.class, "indiaTaxBeanName").calculate(client);
}
else if (client.isFromUS())
{
ServiceLocator.getServiceBean(TaxCalculation.class, "usTaxBeanName").calculate(client);
}
}
相關問題
- 1. 春季注射技巧
- 2. 春季輔助注射是否可行?
- 3. 注射泛型列表在春季4.1
- 4. 春季注射類型區別
- 5. 春季誤注入春天對象注射
- 6. 春季動態變化
- 7. 動態模型在春季
- 8. 春季注入Maven
- 9. 靜態註冊表類春季
- 10. 注射自動裝配依賴失敗(春季用SpringMVC + JPA + + springdata)
- 11. 春季啓動MVC:資源映射
- 12. 春季請求url動作類映射
- 13. 瓷磚春季啓動URL映射
- 14. 移動註冊春季社交
- 15. 春季啓動調度不@EnableScheduling註釋
- 16. 春季啓動 - 什麼註解需要
- 17. 錯誤春季自動裝配註解
- 18. 春季啓動:Jersey ResourceConfig需要註釋?
- 19. 春季啓動:注入模擬Runner類
- 20. 春季自動動態綁定
- 21. 春季webservices enpoing和映射
- 22. 春季URL映射衝突
- 23. 春季安全春季啓動4.x
- 24. 如何在春季實現動態依賴注入?
- 25. 春季安全 - 動態更改註銷成功網址
- 26. 注入枚舉(春季)
- 27. 春季安全元註釋
- 28. 春季安全註銷
- 29. 春季驗證註釋
- 30. 春季Bean依賴注入
'@ Bean'不用於注入一個豆子。它用來聲明一個。需要的是@ @ Autowired',帶'@ Qualifier'。 – 2014-09-26 06:05:09
@JBNizet,謝謝。我會更新答案 – WeMakeSoftware 2014-09-26 07:11:25