前面章节已经把MyBatis的全局配置文件的解析分析完成,下面继续对整合类SqlSeesionFactoryBean,代码进行分析。
if (this.transactionFactory == null) { this.transactionFactory = new SpringManagedTransactionFactory(); } Environment environment = new Environment(this.environment, this.transactionFactory, this.dataSource); configuration.setEnvironment(environment); if (this.databaseIdProvider != null) { try { configuration.setDatabaseId(this.databaseIdProvider.getDatabaseId(this.dataSource)); } catch (SQLException e) { throw new NestedIOException("Failed getting a databaseId", e); } }
这里是Spring的配置文件,MyBatis整合Spring的实现(1)中1的SpringXML配置(样例)。
也就是需要建立SpringManagedTransactionFactory事务工厂。工厂构建完成,根据新事物工厂与数据源重新生成环境信息。这里在通过Spring配置提供的数据源获取当前数据库产品的名称。
总结
这里就会覆盖MyBatis的全局文件中设计的事务工厂及数据源。Configuration(全局配置类)中的databaseId也会被覆盖
时间: 2024-12-08 23:17:27