多构造器的类,如何通过Spring 注解进行依赖注入,通过Spring管理Bean
问题:我写了一个BaseMyBatisDAOImpl ,该类中需要依赖SqlSessionTemplate 。SqlSessionTemplate 的构造器有3中(含参数和不含参数的构造器)。我想完全通过注解方式实现依赖注入,又能通过Spring来管理BaseMyBatisDAOImpl。在使用的时候,根据场景,需要使用SqlSessionTemplate 默认构造器进行实例化,有时候需要SqlSessionTemplate 带参数的构筑器进行实例化。请问有什么好的实现方式吗?
代码如下:
@Repository(value = "BaseMyBatisDAOImpl")
public class BaseMyBatisDAOImpl extends SqlSessionDaoSupport{
public static final Logger log = LoggerFactory.getLogger(BaseMyBatisDAOImpl.class);
protected SqlSession sqlSession;
@Autowired
public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate){
super.setSqlSessionTemplate(sqlSessionTemplate);
}
}
还是我们一定只能增加SetXXX方法,根据场景判断通过Set方式实现SqlSessionTemplate 的注入。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的需求应该是在实例化 SqlSessionTemplate Bean 之前, 可以根据不同的需求来使用相应的构造器吧?
那么可以使用Spring Java Config 的方式来配置 Bean, 例如:
使用 Spring Java Config , 就可以根据条件控制如何生成 Bean 的.
我觉得可以写多个继承
SqlSessionTemplate
的类,然后用@Component("Your_Bean_Name")
来指定不同实现的Bean名称,最后在注入的地方用@Qulifiler("The_Bean_Name")
来指定要注入的Bean!