小編給大家分享一下Spring Boot + Mybatis + Spring MVC環(huán)境配置中DataSource如何配置,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供二七企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計制作、成都做網(wǎng)站、HTML5建站、小程序制作等業(yè)務(wù)。10年已為二七眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
一、 在application.properties中設(shè)置數(shù)據(jù)源
#設(shè)置Tomcat端口,默認(rèn)8080 server.port=8080 #設(shè)置項目ContextPath server.context-path=/ #設(shè)置Tomcat編碼 server.tomcat.uri-encoding=UTF-8 #設(shè)置視圖解析器路徑 spring.mvc.view.prefix=/WEB-INF/views/ #設(shè)置視圖解析器后綴 spring.mvc.view.suffix=.jsp #數(shù)據(jù)庫配置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 #數(shù)據(jù)庫配置 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創(chuàng)建,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")
當(dāng)有多個數(shù)據(jù)源配置是,使用@Primary指定當(dāng)前數(shù)據(jù)庫為主要的數(shù)據(jù)源
指名用的是哪個數(shù)據(jù)源,testDataSource為DataSourceConfg開始創(chuàng)建的數(shù)據(jù)源
@Qualifier("testDataSource")
進(jìn)行了自定義的DataSource的話,Application.java 中需要加(exclude= {DataSourceAutoConfiguration.class})來排除掉自動配置的DataSource
@EnableAutoConfiguration(exclude= {DataSourceAutoConfiguration.class})
三、如果使用的Spring Boot自動配置的DataSource,只需要進(jìn)行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環(huán)境配置中DataSource如何配置”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!