多构造器的类,如何通过Spring 注解进行依赖注入,通过Spring管理Bean

发布于 2022-09-03 23:43:46 字数 861 浏览 15 评论 0

问题:我写了一个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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苹果你个爱泡泡 2022-09-10 23:43:46

在使用的时候,根据场景,需要使用 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 的.

慕巷 2022-09-10 23:43:46

我觉得可以写多个继承SqlSessionTemplate的类,然后用@Component("Your_Bean_Name")来指定不同实现的Bean名称,最后在注入的地方用@Qulifiler("The_Bean_Name")来指定要注入的Bean!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文