我有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. 注射泛型列表在春季4.1
- 3. 春季輔助注射是否可行?
- 4. 動態模型在春季
- 5. 靜態註冊表類春季
- 6. 注射自動裝配依賴失敗(春季用SpringMVC + JPA + + springdata)
- 7. 春季啓動MVC:資源映射
- 8. 春季啓動調度不@EnableScheduling註釋
- 9. 春季啓動 - 什麼註解需要
- 10. 春季啓動:注入模擬Runner類
- 11. 春季自動動態綁定
- 12. 春季webservices enpoing和映射
- 13. 春季URL映射衝突
- 14. 春季安全 - 動態更改註銷成功網址
- 15. 春季安全春季啓動4.x
- 16. 春季驗證註釋
- 17. 通過Java註解春季
- 18. 春季安全元註釋
- 19. 春季Bean依賴注入
- 20. 春季安全註銷
- 21. 春季注入枚舉
- 22. 注入枚舉(春季)
- 23. 春季動態列表屬性
- 24. 春季雲流動態沉聽衆
- 25. AMQP春季:如何動態調整concurrentConsumers?
- 26. 春季動態的HTTPStatus從變量
- 27. 靜態字段+春季自動裝配
- 28. 如何動態地解決在春季
- 29. 在春季啓動
- 30. 春季啓動HttpMediaTypeNotSupportedException
'@ Bean'不用於注入一個豆子。它用來聲明一個。需要的是@ @ Autowired',帶'@ Qualifier'。 – 2014-09-26 06:05:09
@JBNizet,謝謝。我會更新答案 – WeMakeSoftware 2014-09-26 07:11:25