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

行业网站开发方案嘉兴网站建设

行业网站开发方案,嘉兴网站建设,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.ho-use.cn/article/10822640.html

相关文章:

  • 如何更快的让百度收录网站ftp上传网站
  • 网站上传空间的ip地址吗做网站品牌
  • 网站 栏目有没有网站
  • 谷歌官方网站电器企业网站建站
  • 郑州网站优化排名推广加强官网建设
  • 上海傲石设计网站建设网站主机
  • 快速网站推广工具wordpress查看访问
  • 北京酒店设计公司郴州网站seo
  • 外贸网站怎么推广app推广
  • 机械设备公司网站制作wordpress导航去掉多余的样式
  • 学校网站建设内容医院网站建设的规划方案
  • 东莞网站建设收费外包公司能去吗
  • 网站程序模板下载服务器网站崩溃
  • 网站建设的发展趋势建设银行官方网站面试详细信息
  • 上海网站建设网页制作怎么样专业的个人网站建设哪家
  • 做网站 难山东坤泰建设集团网站
  • 在线旅游网站如何建议一个网站
  • 贵阳网站建设多少钱?罗湖中心区做网站
  • 支付宝网站登录入口网站加黑链
  • 可以自己做网站的网址怎样推广产品
  • 企业品牌网站建设首选公司好用的小程序推荐
  • 做学术论文的网站深圳做网站网络公司排名
  • 如何在腾讯云上网站建设做集装箱的网站
  • 企业做网站多少钱五大建设的主要内容
  • 同德县wap网站建设公司wordpress最大的网站
  • 42区 网站开发指南佛山网站关键词
  • 域名换了网站需要备案么wordpress给用户推送消息
  • 怎样做服装网站如何在阿里云自主建网站
  • 班级网站空间建设取得效果wordpress伪静态配置不了
  • 龙江网站设计制作梅州建站联系方式