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

金昌市网站建设_网站建设公司_Bootstrap_seo优化

个人网站设计界面,景观建设网站,陕西建设网站,wordpress网站统计插件下载注入映射器 与其在数据访问对象#xff08;DAO#xff09;中手工编写使用 SqlSessionDaoSupport 或 SqlSessionTemplate 的代码#xff0c;还不如让 Mybatis-Spring 为你创建一个线程安全的映射器#xff0c;这样你就可以直接注入到其它的 bean 中了#xff1a; bea… 注入映射器 与其在数据访问对象DAO中手工编写使用 SqlSessionDaoSupport 或 SqlSessionTemplate 的代码还不如让 Mybatis-Spring 为你创建一个线程安全的映射器这样你就可以直接注入到其它的 bean 中了 bean idfooService classorg.mybatis.spring.sample.service.FooServiceImplconstructor-arg refuserMapper / /bean注入完毕后映射器就可以在你的应用逻辑代码中使用了 public class FooServiceImpl implements FooService {private final UserMapper userMapper;public FooServiceImpl(UserMapper userMapper) {this.userMapper userMapper;}public User doSomeBusinessStuff(String userId) {return this.userMapper.getUser(userId);} }注意代码中并没有任何的对 SqlSession 或 MyBatis 的引用。你也不需要担心创建、打开、关闭 sessionMyBatis-Spring 将为你打理好一切。 注册映射器 注册映射器的方法根据你的配置方法即经典的 XML 配置或新的 3.0 以上版本的 Java 配置也就是常说的 Configuration而有所不同。 XML 配置 在你的 XML 中加入 MapperFactoryBean 以便将映射器注册到 Spring 中。就像下面一样 bean iduserMapper classorg.mybatis.spring.mapper.MapperFactoryBeanproperty namemapperInterface valueorg.mybatis.spring.sample.mapper.UserMapper /property namesqlSessionFactory refsqlSessionFactory / /bean如果映射器接口 UserMapper 在相同的类路径下有对应的 MyBatis XML 映射器配置文件将会被 MapperFactoryBean 自动解析。不需要在 MyBatis 配置文件中显式配置映射器除非映射器配置文件与接口类不在同一个类路径下。 参考 SqlSessionFactoryBean 的 configLocation 属性以获取更多信息。 注意 MapperFactoryBean 需要配置一个 SqlSessionFactory 或 SqlSessionTemplate。它们可以分别通过 sqlSessionFactory 和 sqlSessionTemplate 属性来进行设置。 如果两者都被设置SqlSessionFactory 将被忽略。由于 SqlSessionTemplate 已经设置了一个 session 工厂MapperFactoryBean 将使用那个工厂。 Java 配置 Configuration public class MyBatisConfig {Beanpublic MapperFactoryBeanUserMapper userMapper() throws Exception {MapperFactoryBeanUserMapper factoryBean new MapperFactoryBean(UserMapper.class);factoryBean.setSqlSessionFactory(sqlSessionFactory());return factoryBean;} }发现映射器 不需要一个个地注册你的所有映射器。你可以让 MyBatis-Spring 对类路径进行扫描来发现它们。 有几种办法来发现映射器 使用 mybatis:scan/ 元素使用 MapperScan 注解在经典 Spring XML 配置文件中注册一个 MapperScannerConfigurer mybatis:scan/ 和 MapperScan 都在 MyBatis-Spring 1.2.0 中被引入。MapperScan 需要你使用 Spring 3.1。 从 2.0.2 版本开始mapper 扫描机制支持控制 mapper bean 的懒加载 (lazy-initialization) 这个选项是可选的。 添加这个选项是为了支持 Spring Boot 2.2 中的懒加载特性。 默认的选项值为 false  即不开启懒加载。 如果开发者想使用懒加载的特性需要显式地将其设置为 true. IMPORTANT 如果开发者想使用懒加载的特性需要首先知道其局限性。 如果有下列情况懒加载将在你的应用中不起作用 当使用 association(One) 与 collection(Many) 指向其它的 mapper 时当使用 include 将其它的 mapper 的一部分包含进来时当使用 cache-ref(CacheNamespaceRef) 指向其它的 mapper 的缓存时当使用 select resultMap...(ResultMap) 指向其它的 mapper 的结果集时 NOTE 然而通过使用 DependsOnSpring 的特性在初始化依赖 bean 的同时可以使用懒加载如下所示 DependsOn(vendorMapper) public interface GoodsMapper {// ... }2.0.6 起开发者可以通过 mapper 扫描的特性使用(default-scope 的)选项和作用域注解来指定扫描的 bean 的作用域(Scope、 RefreshScope 等)。 添加这个可选项是为了支持 Spring Cloud 的 refresh 作用域的特性。可选项默认为空 相当于指定 singleton 作用域。 当被扫描的 bean 定义在 singleton 作用域默认作用域且若最终的作用域不是 singleton 时为其创建一个基于作用域的代理 bean default-scope 作用于 mapper bean(MapperFactoryBean). mybatis:scan mybatis:scan/ 元素会发现映射器它发现映射器的方法与 Spring 内建的 context:component-scan/ 发现 bean 的方法非常类似。 下面是一个 XML 配置样例 beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:mybatishttp://mybatis.org/schema/mybatis-springxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsdmybatis:scan base-packageorg.mybatis.spring.sample.mapper /!-- ... --/beansbase-package 属性允许你设置映射器接口文件的基础包。通过使用逗号或分号分隔你可以设置多个包。并且会在你所指定的包中递归搜索映射器。 注意不需要为 mybatis:scan/ 指定 SqlSessionFactory 或 SqlSessionTemplate这是因为它将使用能够被自动注入的 MapperFactoryBean。但如果你正在使用多个数据源DataSource自动注入可能不适合你。 在这种情况下你可以使用 factory-ref 或 template-ref 属性指定你想使用的 bean 名称。 mybatis:scan/ 支持基于标记接口或注解的过滤操作。在 annotation 属性中可以指定映射器应该具有的特定注解。而在 marker-interface 属性中可以指定映射器应该继承的父接口。当这两个属性都被设置的时候被发现的映射器会满足这两个条件。 默认情况下这两个属性为空因此在基础包中的所有接口都会被作为映射器被发现。 被发现的映射器会按照 Spring 对自动发现组件的默认命名策略进行命名参考 the Spring reference document(Core Technologies -Naming autodetected components-) 。 也就是说如果没有使用注解显式指定名称将会使用映射器的首字母小写非全限定类名作为名称。但如果发现映射器具有 Component 或 JSR-330 标准中 Named 注解会使用注解中的名称作为名称。 提醒一下你可以设置 annotation 属性为你自定义的注解然后在你的注解上设置 org.springframework.stereotype.Component 或 javax.inject.Named需要使用 Java SE 6 以上注解这样你的注解既可以作为标记也可以作为一个名字提供器来使用了。 提示 context:component-scan/ 无法发现并注册映射器。映射器的本质是接口为了将它们注册到 Spring 中发现器必须知道如何为找到的每个接口创建一个 MapperFactoryBean。 MapperScan 当你正在使用 Spring 的基于 Java 的配置时也就是 Configuration相比于使用 mybatis:scan/你会更喜欢用 MapperScan。 MapperScan 注解的使用方法如下 Configuration MapperScan(org.mybatis.spring.sample.mapper) public class AppConfig {// ... }这个注解具有与之前见过的 mybatis:scan/ 元素一样的工作方式。它也可以通过 markerInterface 和 annotationClass 属性设置标记接口或注解类。 通过配置 sqlSessionFactory 和 sqlSessionTemplate 属性你还能指定一个 SqlSessionFactory 或 SqlSessionTemplate。 NOTE 从 2.0.4 起如果 basePackageClasses 或 basePackages 没有定义 扫描将基于声明这个注解的类所在的包。 MapperScannerConfigurer MapperScannerConfigurer 是一个 BeanDefinitionRegistryPostProcessor这样就可以作为一个 bean包含在经典的 XML 应用上下文中。为了配置 MapperScannerConfigurer使用下面的 Spring 配置 bean classorg.mybatis.spring.mapper.MapperScannerConfigurerproperty namebasePackage valueorg.mybatis.spring.sample.mapper / /bean如果你需要指定 sqlSessionFactory 或 sqlSessionTemplate那你应该要指定的是 bean 名而不是 bean 的引用因此要使用 value 属性而不是通常的 ref 属性 property namesqlSessionFactoryBeanName valuesqlSessionFactory /提示 在 MyBatis-Spring 1.0.2 之前sqlSessionFactoryBean 和 sqlSessionTemplateBean 属性是唯一可用的属性。 但由于 MapperScannerConfigurer 在启动过程中比 PropertyPlaceholderConfigurer 运行得更早经常会产生错误。基于这个原因上述的属性已被废弃现在建议使用 sqlSessionFactoryBeanName 和 sqlSessionTemplateBeanName 属性。
http://www.ihoyoo.com/news/9077.html

相关文章:

  • 毕业设计做音乐网站工程建设教育网
  • 建设一个网站要多少费用吗龙岗建设网站公司
  • 两个网站php 一个空间五金店网站模板
  • 网站开发框架 c厦门门户网站制作服务商
  • 北京宏福建设有限公司网站wordpress企业主题排行榜
  • 潍坊模板建站定制建材招商网
  • 绵阳 网站 建设wordpress增加动效
  • 佛山英文网建站网站开发项目中职责
  • 做推广可以在哪些网站发布软文一个外国人建设的中国文字网站
  • 郑州网站建设 app开发西安流调信息
  • 专业网站设计报价个人网站 论坛
  • 做dw网站图片怎么下载地址淄博网站文章优化
  • 自己弄个网站要多少钱亚马逊网站的建设目标
  • 西安做网站印象网络云南省城乡住房建设厅网站
  • 自己做网站上传视频网站建设项目报价
  • 郑州专业网站建设搭建公司网络架构师工资
  • wordpress的源代码嘉兴网站关键词优化
  • 江西省赣州市邮政编码seo优化顾问服务阿亮
  • 重庆网站seo什么意思网站建设费用如何做账
  • 常见的网站建设类型都有哪些.net开发网站怎么样
  • 海口网站建设运营cve wordpress
  • 网站 默认页央企网站群建设
  • 北京网站建设公司怎么样flash网站源文件下载
  • 做网站有啥软件无锡新区网站建设
  • 新手制作网站电商数据分析平台
  • 曲阜市住房和城乡建设局网站福州百度关键词优化
  • 做模特网站wordpress 悬浮按钮
  • 莆田网站建站互联网广告推广是什么
  • 河南做网站公司哪家好定制家具生产厂家
  • 拖拽式网站建设费用网络营销网站的建设与策划