详解Spring中实现接口动态的解决方法-创新互联

前言

成都创新互联公司主营平山网站建设的网络公司,主营网站建设方案,成都app软件开发,平山h5重庆小程序开发公司搭建,平山网站营销推广欢迎平山等地区企业咨询

本文主要给大家介绍的是关于Spring实现接口动态的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍吧。

关于这个问题是因为领导最近跟我提了一个需求,是有关于实现类Mybatis的@Select、@Insert注解的功能。其是基于interface层面,不存在任何的接口实现类。因而在实现的过程中,首先要解决的是如何动态实现接口的实例化。其次是如何将使接口根据注解实现相应的功能。

声明

解决方案是基于Mybatis源码,进行二次开发实现。

解决方法

我们先来看看Mybatis是如何实现Dao类的扫描的。

MapperScannerConfigurer.java

public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
 if (this.processPropertyPlaceHolders) {
  processPropertyPlaceHolders();
 }

 ClassPathMapperScanner scanner = new ClassPathMapperScanner(registry);
 scanner.setAddToConfig(this.addToConfig);
 scanner.setAnnotationClass(this.annotationClass);
 scanner.setMarkerInterface(this.markerInterface);
 scanner.setSqlSessionFactory(this.sqlSessionFactory);
 scanner.setSqlSessionTemplate(this.sqlSessionTemplate);
 scanner.setSqlSessionFactoryBeanName(this.sqlSessionFactoryBeanName);
 scanner.setSqlSessionTemplateBeanName(this.sqlSessionTemplateBeanName);
 scanner.setResourceLoader(this.applicationContext);
 scanner.setBeanNameGenerator(this.nameGenerator);
 scanner.registerFilters();
 scanner.scan(StringUtils.tokenizeToStringArray(this.basePackage, ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS));
 }

文章名称:详解Spring中实现接口动态的解决方法-创新互联
当前URL:http://bzwzjz.com/article/cdddhc.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: LED网站设计方案 手机网站制作 品牌网站建设 定制网站设计 盐亭网站设计 企业网站设计 成都网站建设 成都网站建设流程 成都网站设计 做网站设计 成都网站设计公司 成都网站设计 响应式网站设计 响应式网站建设 成都定制网站建设 手机网站制作 网站建设开发 专业网站设计 营销网站建设 成都网站制作 成都网站设计 成都商城网站制作