[英]How to make Spring ignore an @autowired jmsTemplate field for test purposes?
[英]How can I make a field which is generic field autowired with dynamic generate in Spring?
我定義了一些具有泛型的接口,並且在Spring上下文中將一些類作為Bean注入,可以動態創建一個管理器Bean來管理它們,並且可以在沒有該管理器任何Bean def代碼的情況下自動連接到字段中嗎?
我嘗試了FactoryBean方式來實現它,但是沒有用,它無法傳輸泛型類信息,並且FactoryBean bean無法傳輸任何可更改的參數。
我嘗試了BeanFactory的方式來實現它,當我獲得getBeansOfType時,這些沒有自動裝配的對象無法正常工作。
現在,我有了一個finally方法,我認為使用ImportBeanDefinitionRegistrar和ClassPathBeanDefinitionScanner掃描所有類,然后插入管理器的beanDefinition並不是很聰明。
如果您提供任何方法,我將不勝感激,非常感謝!
我想這樣實現:
public interface Strategy<E extends BaseEnum>
{
public E getType();
}
public interface LoginStrategy extends Strategy<LoginType>
{
public LoginStrategy getType();
}
@Strategy
public class ALoginStrategy implements LoginStrategy
{
public getType()
{
return LoginType.OTP;
}
}
@Strategy
public class BLoginStrategy implements LoginStrategy
{
@Autowired
private UserMapper;
public getType()
{
return LoginType.PASSWORD;
}
}
public LoginServiceImpl implements LoginService
{
@Autowired
private StrategyManage<LoginType, LoginStrategy> strategyManager;
}
我希望可以自動生成LoginServiceImpl中標為“自動裝配”的strategyManager。
我還有另一個問題。 解釋我想要的內容可能會更容易。
我有一個實現ModelConvertor接口的模型轉換器,TL是LowerModel的類,TU是upperModel的類。
現在有一個像這樣的bean包含代碼:
@Autowired
private ModelConvertor<UserPO, UserDO> userConvertor;
通常,Spring框架會拋出帶有“ no such bean”消息的Exception,因此我想使此字段可以自動注入一個像這樣的值:
@Autowired
private ModelConvertor<UserPO, UserDO> userConvertor[ = new DefaultModelConvertor(UserPO.class, UserDO.class)];
我該如何解決這些問題,非常感謝!
我已經解決了這個問題,掃描特定的程序包並動態生成放置在上下文中的bean。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.