springboot使用起来非常简单,他大大的减少了码农们对jar包的处理,不用再去考虑包之间的引用,版本是否冲突。
以下是部分代码
1、pom.xml用于控制jar包
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2、Application.java 程序总入口
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
/**
* 启动类
*
* @author 码农猿
* @date 2019-03-25
*/
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3、DataSource1Config.java 数据源信息配置
package com.example.config.datasource;
import com.alibaba.druid.pool.DruidDataSource;
import com.example.config.constant.DataSourceConstant;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
/**
* 数据源1 > 配置
*
* @author 码农猿
* @date 2019-03-25
* 说明一下两个注解的作用
* -- @Primary:在众多相同的bean中,优先选择用@Primary注解的bean(该注解加在各个bean上)
* -- @Qualifier:在众多相同的bean中,@Qualifier指定需要注入的bean(该注解跟随在@Autowired后)
*/
@Configuration
@MapperScan(basePackages = DataSourceConstant.DB1_BASE_PACKAGES, sqlSessionTemplateRef = "test1SqlSessionTemplate")
public class DataSource1Config {
/**
* 数据源配置
* 使用的连接池是 DruidDataSource
*
* 注解ConfigurationProperties
* 作用就是将全局配置文件中的属性值注入到DruidDataSource 的同名参数
*/
@Primary
@Bean(name = "test1DataSource")
@Qualifier("test1DataSource")
@ConfigurationProperties(prefix = DataSourceConstant.DB1_DATA_SOURCE_PREFIX)
public DataSource testDataSource() {
//DataSourceBuilder.create().build() 默认数据源类型是 org.apache.tomcat.jdbc.pool.DataSource
//这里指定使用类型 -- 阿里DruidDataSource 连接池
return DataSourceBuilder.create().type(DruidDataSource.class).build();
}
/**
* 创建 SqlSessionFactory 工厂
*/
@Primary
@Bean(name = "test1SqlSessionFactory")
public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(DataSourceConstant.DB1_MAPPER_LOCATION));
org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
configuration.setCallSettersOnNulls(true);
bean.setConfiguration(configuration);
return bean.getObject();
}
/**
* 事务管理
*/
@Primary
@Bean(name = "test1TransactionManager")
public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
/**
* MyBatis提供的持久层访问模板化的工具
* 线程安全,可通过构造参数或依赖注入SqlSessionFactory实例
*/
@Primary
@Bean(name = "test1SqlSessionTemplate")
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}