问题:我写了一个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 的注入。
2 回答

噜噜哒
TA贡献1784条经验 获得超7个赞
在使用的时候,根据场景,需要使用 SqlSessionTemplate 默认构造器进行实例化,有时候需要SqlSessionTemplate 带参数的构筑器进行实例化。
你的需求应该是在实例化 SqlSessionTemplate Bean 之前, 可以根据不同的需求来使用相应的构造器吧?
那么可以使用Spring Java Config 的方式来配置 Bean, 例如:
@Configuration
public class AppConfig {
@Bean
public SqlSessionTemplate sqlSessionTemplate() {
if (someCondition) {
return new SqlSessionTemplate();
} else {
return new SqlSessionTemplate(args);
}
}
}
使用 Spring Java Config , 就可以根据条件控制如何生成 Bean 的.

阿波罗的战车
TA贡献1862条经验 获得超6个赞
添加回答
举报
0/150
提交
取消