(一)添加依赖

<!-- jdbc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Druid连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!--log4j 没有的话,会报错-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

(二)配置Druid和Mybatis
  我删除了​​​application.xml​​​,使用了更简洁的​​application.yml​​,配置文件如下:

spring:
datasource:
#JDBC配置
name: test
url: jdbc:mysql://127.0.0.1:3306/tomcat?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver

# 使用druid数据源
type: com.alibaba.druid.pool.DruidDataSource

#--------------------Druid 连接池配置 start-----------------------------
druid:
#初始化大小,最小,最大
initial-size: 5
min-idle: 1
max-active: 50
#配置获取连接等待超时时间
max-wait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
# 打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20

#--------------------监控配置 start-----------------------------
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connection-properties: druid.stat.mergeSql=true
filter:
stat:
slow-sql-millis: 5000

#--------------------Druid 连接池配置 end-----------------------------

#mybatis配置
mybatis:
#配置mapper文件所在的位置
mapper-locations: classpath:mybatis/mappers/*.xml
#配置实体类的位置,这样在mapper文件中的返回值类型直接写User即可(否则要加上包名.类名)
type-aliases-package: org.pc.entity

(三)创建Druid监控配置类(没有这,监控无法启动)

/**
* Druid的DataResource配置类(这个类主要用于Druid的监控使用):
* 凡是被Spring管理的类,实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动时,
* 获取到系统环境变量和application配置文件中的变量。
* 还有一种方式是采用注解的方式获取 @value("${变量的key值}")获取application配置文件中的变量。
* 这里采用第一种要方便些。
*/
@Configuration
@EnableTransactionManagement
public class DruidDataSourceConfig {
/**
* 配置servlet
*/
@Bean
public ServletRegistrationBean druidServlet(){
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
servletRegistrationBean.setServlet(new StatViewServlet());
servletRegistrationBean.addUrlMappings("/druid/*");
Map<String, String> initParams = new HashMap<>();
// 禁用HTML页面上的“Reset All”功能
initParams.put("resetEnable", "false");
// IP白名单 (没有配置或者为空,则允许所有访问)
initParams.put("allow", "127.0.0.1");
//IP黑名单 (不许访问)(存在共同时,deny优先于allow)
initParams.put("deny", "127.0.0.1");
servletRegistrationBean.setInitParameters(initParams);
return servletRegistrationBean;
}
/**
* 配置filter
*/
@Bean
public FilterRegistrationBean filterRegistrationBean(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
// 按照BeanId来拦截配置 用来bean的监控
@Bean(value = "druid-stat-interceptor")
public DruidStatInterceptor druidStatInterceptor(){
DruidStatInterceptor druidStatInterceptor = new DruidStatInterceptor();
return druidStatInterceptor;
}
@Bean
public BeanNameAutoProxyCreator beanNameAutoProxyCreator(){
BeanNameAutoProxyCreator beanNameAutoProxyCreator = new BeanNameAutoProxyCreator();
beanNameAutoProxyCreator.setProxyTargetClass(true);
beanNameAutoProxyCreator.setInterceptorNames("druid-stat-interceptor");
return beanNameAutoProxyCreator;
}
}

(四)修改启动类
  主要适用于配置Druid监控和Mybatis的接口所在的包:
  配置Druid监控:@ServletComponentScan
  Mybatis的接口:@MapperScan(“org.pc.dao”)

/**
* @ServletComponentScan 设置启动时spring能够扫描到我们自己编写的servlet和filter, 用于Druid监控
* @MapperScan 用于扫描的mapper接口
*/
@ServletComponentScan
@MapperScan("org.pc.dao")
@SpringBootApplication
public class MybatisDruidApplication {

public static void main(String[] args) {
SpringApplication.run(MybatisDruidApplication.class, args);
}
}

(五)测试
  按照Controller、Service、Dao层进行测试即可。