您好,登錄后才能下訂單哦!
小編給大家分享一下Spring Boot + Mybatis + Spring MVC環境配置中DataSource如何配置,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
一、 在application.properties中設置數據源
#設置Tomcat端口,默認8080 server.port=8080 #設置項目ContextPath server.context-path=/ #設置Tomcat編碼 server.tomcat.uri-encoding=UTF-8 #設置視圖解析器路徑 spring.mvc.view.prefix=/WEB-INF/views/ #設置視圖解析器后綴 spring.mvc.view.suffix=.jsp #數據庫配置mybatis generator spring.datasource.driver-class-name = com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?setUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root #數據庫配置 spring.datasource.test.driver-class-name = com.mysql.jdbc.Driver spring.datasource.test.jdbc-url=jdbc:mysql://localhost:3306/mybatis spring.datasource.test.username=root spring.datasource.test.password=root #配置.xml文件路徑 mybatis.mapper-locations=classpath:/com/kai/demo/mapper/*.xml #配置模型路徑 mybatis.type-aliases-package=com.kai.demo.model
二、DataSource創建,DataSourceConfig.java
@Configuration @MapperScan(basePackages = "com.kai.demo.dao") @Primary @PropertySource("classpath:application.properties") public class DataSourceConfig { //mybatis 的mapper配置文件地址 @Value("${mybatis.mapper-locations}") private String mybatisMapper; @Primary @Bean(name = "testDataSource") @ConfigurationProperties(prefix = "spring.datasource.test") public DataSource testDataSource() { return DataSourceBuilder.create().build(); } @Primary @Bean(name = "testSqlSessionFactory") public SqlSessionFactory testSqlSessionFactory(@Qualifier("testDataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mybatisMapper)); try { return bean.getObject(); }catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } @Primary @Bean(name = "testTransactionManager") public DataSourceTransactionManager testTransactionManager(@Qualifier("testDataSource") DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Primary @Bean(name = "testSqlSessionTemplate") public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("testSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { return new SqlSessionTemplate(sqlSessionFactory); } }
指定要掃描的Mapper類的包的路徑,如果不指定,需要在每個Mapper類里添加@Mapper注解
@MapperScan(basePackages = "com.kai.demo.dao")
指定配置文件地址,配置文件是application.properties時,可以省略
@PropertySource("classpath:application.properties")
當有多個數據源配置是,使用@Primary指定當前數據庫為主要的數據源
指名用的是哪個數據源,testDataSource為DataSourceConfg開始創建的數據源
@Qualifier("testDataSource")
進行了自定義的DataSource的話,Application.java 中需要加(exclude= {DataSourceAutoConfiguration.class})來排除掉自動配置的DataSource
@EnableAutoConfiguration(exclude= {DataSourceAutoConfiguration.class})
三、如果使用的Spring Boot自動配置的DataSource,只需要進行MapperLocation配置就可使用Mybatis了
@Configuration @MapperScan(basePackages = "com.kai.demo.dao") @Primary public class DefaultDataSource { //mybatis 的mapper配置文件地址 @Value("${mybatis.mapper-locations}") private String mybatisMapper; @Bean public SqlSessionFactory setSqlSessionFactory(DataSource dataSource) throws IOException { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mybatisMapper)); try { return bean.getObject(); }catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } }
這個時候Appliation.java中就不能有(exclude= {DataSourceAutoConfiguration.class})
以上是“Spring Boot + Mybatis + Spring MVC環境配置中DataSource如何配置”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。