首页 > 其他分享 >MyBatis-08-Spring的MyBatis Interceptor

MyBatis-08-Spring的MyBatis Interceptor

时间:2024-04-16 22:56:26浏览次数:33  
标签:sqlSessionFactory Spring 08 实例 configuration MyBatis null afterPropertiesSet

addInterceptor

image

3个地方

  • XML 解析的
  • SqlSessionFactoryBean: 生成 SqlSession 的 FactoryBean
  • PageHelperAutoConfiguration: 分页助手的自动配置

SqlSessionFactoryBean

发现现在都没有将他作为一个 FactoryBean 使用了
getObject 调用了 afterPropertiesSet 生成 SqlSessionFactory 实例
原来 onApplicationEvent 的作用是啥?

@Override
public SqlSessionFactory getObject() throws Exception {
  // 没有实例则调用 afterPropertiesSet 生成
  if (this.sqlSessionFactory == null) {
    afterPropertiesSet();
  }
  // 返回实例
  return this.sqlSessionFactory;
}

@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
  if (failFast) {
    // fail-fast -> check all statements are completed
	// ? 啥
    this.sqlSessionFactory.getConfiguration().getMappedStatementNames();
  }
}

@Override
public void afterPropertiesSet() throws Exception {
  // 数据源、sqlSessionFactoryBuilder 必须已存在
  notNull(dataSource, "Property 'dataSource' is required");
  notNull(sqlSessionFactoryBuilder, "Property 'sqlSessionFactoryBuilder' is required");
  // 要么存在配置实例, 要么存在配置文件路径
  state((configuration == null && configLocation == null) || !(configuration != null && configLocation != null),
      "Property 'configuration' and 'configLocation' can not specified with together");

  this.sqlSessionFactory = buildSqlSessionFactory();
}

标签:sqlSessionFactory,Spring,08,实例,configuration,MyBatis,null,afterPropertiesSet
From: https://www.cnblogs.com/chenxingyang/p/18139469

相关文章

  • MyBatis-09-FactoryBean的问题
    ListableBeanFactory#getBeanNamesForType(Class<?>)这个方法的逻辑在对FactoryBean进行判断时,会使用FactoryBean的生成的对象的类型进行判断BD的属性数据AttributeAccessor.getAttribute(FactoryBean.OBJECT_TYPE_ATTRIBUTE)反射创建对象并调用FactoryBean#getObjectT......
  • MyBatis-01-Demo
    数据库DDLCREATEDATABASE`mybatis_demo01`;--mybatis_demo01.`user`definitionCREATETABLE`user`(`id`intNOTNULLAUTO_INCREMENT,`username`varchar(100)DEFAULTNULL,`birthday`datetimeDEFAULTNULL,`sex`char(1)DEFAULTNULL,`address`......
  • MyBatis-02-别名
    别名TypeAliasRegistry默认注册了很多别名,构造函数注册的publicTypeAliasRegistry(){registerAlias("string",String.class);registerAlias("byte",Byte.class);registerAlias("char",Character.class);registerAlias("character"......
  • MyBatis-03-environment
    配置<environmentsdefault="default"><environmentid="default"><!--事务类型--><transactionManagertype="JDBC"/><!--数据源类型--><dataSourcetype="POOLED">&l......
  • 31.SpringBoot项目_员工管理系统总结 下
    本来想好好整理最后结束的奈何又接了个项目一个挺大的项目更能运用所以时间不够就简单整理算烂了个尾吧首先:1.人工AI取代程序员对我来说是不对的确实是骗外行的但其确实强大带来的便利但也只有程序员才能完美部署并运用它2.有多少人像我一样不喜欢wordexcelppt喜......
  • springboot简单正确的使用构造函数注入
    一个一个写构造函数太麻烦了,而且代码会显得非常多,这里我们可以采用lombok快捷注入但是我们并不是所有的成员变量都需要进行注入,所以使用@RequiredArgsConstrucotr需要构造函数的部分添加上final关键字"Alwaysuseconstructorbaseddependencyinjectioninyourbeans.Alwa......
  • SpringBoot 事务失效常见的原因
    low一点的原因:1.非public方法2.异常被处理了(trycatch)3.bean没被Spring管理,比如没加Component注解4.数据库不支持(比如MyISAM) 高大上一点的原因:5.内部方法调用,可以注入本实例的代理类,通过代理类来调用6.抛出的是非RuntimeException,可以这么解决(@Transactional(rollb......
  • 初次使用SpringBoot3遇到的一些问题
    打开网址https://start.spring.io/  选择版本依赖等信息 本机环境原先装了个jdk8,由于SpringBoot3最低支持jdk17,所以本机环境上又装了个jdk17   https://www.oracle.com/java/technologies/downloads/#java17出于怀旧,jdk8还保留着,并且环境变量还是jdk8,只是在idea里吧......
  • 30.swagger springboot中简单整理
    类似postman接口在线测试API接口哈哈我也不太懂接口还没前后端整合过呢也就是注释你的各种接口吧可有可无先说依赖问题这个是swagger2的依赖当然出现问题了已经更新到了swagger3了参考:https://cloud.tencent.com/developer/article/1936862https://mvnrepos......
  • mybatisplus
    mybatisplus如何实现获取信息通过扫描实体类并通过反射获取实体类信息作为数据库表信息约定:类名、变量名驼峰转下划线作为表名id字段默认为主键常用注解@TableName,@TableId,@TableField@TableField使用场景:成员变量为boolean并且名称为is开头,转化时会去掉is......