前面章節已經把MyBatis的全局配置文件的解析分析完成,下面繼續對整合類SqlSeesionFactoryBean,代碼進行分析。java
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配置提供的數據源獲取當前數據庫產品的名稱。ide
總結this
這裏就會覆蓋MyBatis的全局文件中設計的事務工廠及數據源。Configuration(全局配置類)中的databaseId也會被覆蓋。這裏經過DEBUG,來附上最終Configuration(全局配置類)的屬性信息。spa