当前位置: 首页 > news >正文

文广网站建设苏州制作网站的公司

文广网站建设,苏州制作网站的公司,河北沧州最新消息,网站建设模板素材SpringMybatis使用MapperScannerConfigurer简化配置 MyBatis的一大亮点就是可以不用DAO层的实现类#xff0c;而我们知道service层调dao层 如果没有实现类#xff0c;Spring如何为Service注入DAO的实例呢#xff1f; 比如 现在有一个dao层的bookmapper和配置mybatis的xm…SpringMybatis使用MapperScannerConfigurer简化配置 MyBatis的一大亮点就是可以不用DAO层的实现类而我们知道service层调dao层 如果没有实现类Spring如何为Service注入DAO的实例呢 比如 现在有一个dao层的bookmapper和配置mybatis的xml类 mybatis-config.xml也配置好了mapper ] 并且有了一个Book的pojo类 BookMapper接口 ] Bookmapper.xml 我们的service 层有一个bookservice和实现类 ] 问题来了现在spring容器里啥都没有甚至度没有spring我们的bookserviceImpl应该注入啥 当然后面的service层spring-service.xml的配置还是有的 !--BookServiceImpl注入到IOC容器中--bean idBookServiceImpl classcom.yj.service.BookServiceImplproperty namebookMapper refbookMapper//bean这样控制层调用业务层是没问题的 如conreoller包下面的BookController import java.util.List;Controller RequestMapping(/book) public class BookController {AutowiredQualifier(BookServiceImpl)private BookService bookService;RequestMapping(/allBook)public String list(Model model) {ListBooks list bookService.findAllBook();model.addAttribute(list, list);return allBook;关键是没有dao层的bean所以一定会出错所以就出现MapperScannerConfigurer Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口也就是本文用的dao层下面的BookMapper生成代理注入到Spring 原理是 Mybatis在与Spring集成的时候可以配置MapperFactoryBean来生成Mapper接口的代理. 例如 bean iduserMapper classorg.mybatis.spring.mapper.MapperFactoryBeanproperty namemapperInterface valueorg.mybatis.spring.sample.mapper.UserMapper /property namesqlSessionFactory refsqlSessionFactory / /beanMapperFactoryBean 创建的代理类实现了 UserMapper 接口,并且注入到应用程序中。 因为代理创建在运行时环境中(Runtime) ,那么指定的映射器必须是一个接口,而 不是一个具体的实现类。 上面的配置有一个很大的缺点就是系统有很多的配置文件时 全部需要手动编写所以上述的方式已经很用了。 没有必要在 Spring 的 XML 配置文件中注册所有的映射器。相反,你可以使用一个 MapperScannerConfigurer , 它 将 会 查 找 类 路 径 下 的 映 射 器 并 自 动 将 它 们 创 建 成 MapperFactoryBean。 或者这样理解原理 MyBatis-Spring提供了一个MapperFactoryBean可以将数据映射接口转为Spring Bean。 bean iduserDao classorg.mybatis.spring.mapper.MapperFactoryBeanproperty namemapperInterface valuedao.UserMapper/property namesqlSessionFactory refsqlSessionFactory//bean如果数据映射接口很多的话需要在Spring的配置文件中对数据映射接口做配置相应的配置项会很多了。为了简化配置在MyBatis-Spring中提供了一个转换器MapperScannerConfig它可以将接口转换为Spring容器中的Bean在Service中Autowired的方法直接注入接口实例。在Spring的配置文件中可以采用以下所示的配置将接口转化为Bean。 !--sqlSessionFactory 工厂 --bean idsqlSessionFactory classorg.mybatis.spring.SqlSessionFactoryBeanproperty namedataSource refdatasource / !--绑定mybatis的配置文件还可以在这可要可不要,甚至可以和配置文件对应或者删除点它或者用他的许多方法--property nameconfigLocation valueclasspath:MyBatis-config.xml/property namemapperLocations valueclasspath:com/yang/mapper/UserMapper.xml//bean!-- dao配置 -- bean classorg.mybatis.spring.mapper.MapperScannerConfigurerproperty namebasePackage valuecom.study.dao /property namesqlSessionFactoryBeanName valuesqlSessionFactory / /beanMapperScannerConfigurer的作用 MyBatis的一大亮点就是可以不用dao层的实现类而我们知道在开发中service层需要调用dao层如果没有dao的实现类Spring如何为Service注入dao的实例呢 Mybatis在与Spring集成的时候可以配置MapperFactoryBean来生成Mapper接口的代理。MapperFactoryBean的出现为了代替手工使用SqlSessionDaoSupport或SqlSessionTemplate编写数据访问对象(DAO)的代码使用动态代理实现。比如下面这个官方文档中的配置 bean iduserMapper classorg.mybatis.spring.mapper.MapperFactoryBeanproperty namemapperInterface valueorg.mybatis.spring.sample.mapper.UserMapper /property namesqlSessionFactory refsqlSessionFactory / /beanorg.mybatis.spring.sample.mapper.UserMapper是一个接口我们创建一个MapperFactoryBean实例然后注入这个接口和sqlSessionFactorymybatis中提供的SqlSessionFactory接口MapperFactoryBean会使用SqlSessionFactory创建SqlSession这两个属性。之后想使用这个UserMapper接口的话直接通过Spring注入这个bean然后就可以直接使用了Spring内部会创建一个这个接口的动态代理。 上面的配置有一个很大的缺点就是系统有很多的配置文件时全部需要手动编写所以上述的方式已经不建议用了。当发现要使用多个MapperFactoryBean的时候一个一个定义肯定非常麻烦于是mybatis-spring提供了MapperScannerConfigurer这个类它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean。 MapperScannerConfigurer是spring和mybatis整合的mybatis-spring的jar包中提供的一个类。 bean classorg.mybatis.spring.mapper.MapperScannerConfigurerproperty namebasePackage valueorg.mybatis.spring.sample.mapper / /bean这段配置会扫描org.mybatis.spring.sample.mapper下的所有接口然后创建各自接口的动态代理类。这样Service就可以注入dao的实例了。
http://www.zqtcl.cn/news/765533/

相关文章:

  • 温州网站设计定制外贸人才网哪家最好
  • 永康门业微网站建设做一个网站要多长时间
  • 南山网站建设哪家好四川省微信网站建设公
  • 网件路由器做网站网站建设中 提示
  • 全运网站的建设徐州网络推广公司排名
  • 成品网站源码1688体验区南宁网络推广服务商
  • 广州品牌网站开发公司网站建设价位
  • 网站首页没排名但内页有排名wordpress网站收录插件
  • 在线相册jsp网站开发与设计微信小程序app下载
  • 广元市建设局网站首页网站建设首选公司哪家好
  • 商务网站建设策划思路平台网站如何做推广方案设计
  • 哈尔滨网站快速排名通辽网站建设
  • 雄安专业网站建设哪家好分销系统网站建设
  • 咨询行业网站开发wordpress5.0新版如何发布文章
  • 做网站要什么技术saas建站和开源建站的区别
  • 大型网站建设哪家服务好qq对话制作器app
  • 做免费小说网站怎样赚钱网络推广方案最新
  • 电商网站的建设与运营揭阳专业的网站建设价格
  • 网站策划书包括哪些内容百度官方营销推广平台有哪些
  • 成都企业网站seo重庆企业网站推广费用
  • 广东电白建设集团有限公司网站wordpress 静态地址
  • 微网站和手机站区别工业设计专业学什么
  • 兰州网站建设哪里好素材图片高清
  • 公司网站建设进度设计官网登录入口
  • 中牟高端网站建设wordpress可视化文章
  • 那家公司做网站广西网络营销外包公司
  • 成品网站速成网站知名网站建设加盟合作
  • 零基础学pytho 网站开发Drupal对比WordPress
  • 网站开发 例子快影
  • 宁津建设局网站推介网站