springboot+mybatis+druid+mysql整合以及druid监控

创建好springboot工程后按照下面的配置是直接可以使用的,再结合另一篇自动生成mybatis中的xml,mapper,model的博文,就可以开发了,后续还会介绍页面端的搭建,异常管理,统一日志等博文
1、首先引入jar

<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.0.1</version>
		</dependency>
		<!--mapper通用包里面包括mybatis-->
		<!--<dependency>
			<groupId>tk.mybatis</groupId>
			<artifactId>mapper-spring-boot-starter</artifactId>
			<version>2.1.5</version>
		</dependency>-->

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.10</version>
		</dependency>

2、druid监控的配置


import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

/**
 * created by jasonwag
 * on 2019/7/18 15:26
 */
@Configuration
public class CustomDruidConfig {
    //配置druid的监控
    //1、配置一个管理后台的servlet
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
        //IP白名单
        //servletRegistrationBean.addInitParameter("allow","");
        //IP黑名单
        //servletRegistrationBean.addInitParameter("deny","192.168.20.99");
        //控制台用户
        bean.addInitParameter("loginUsername","admin");
        bean.addInitParameter("loginPassword","123456");
        //是否能够重置数据
        bean.addInitParameter("resetEnable","false");
        return bean;
    }
    //2、配置一个web监控的filter
    @Bean
    public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean bean = new FilterRegistrationBean(new WebStatFilter());
        //添加过滤规则
        bean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return bean;
    }

}

针对配置文件我分开进行配置的,也就是application.properties和application.yml 2个文件中我都有配置,这样 做的目的是方便运维或者其他部署人员改动。application.properties这个配置文件是配置经常会变动的,application.yml这个里面是不经常变动的
application.properties

spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/smart_project?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
spring.datasource.druid.username=root
spring.datasource.druid.password=123456

application.yml

logging:
  level:
    com.wang.dao: DEBUG
mybatis:
  type-aliases-package: com.sunwin.model
  mapper-locations: classpath:mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
    cache-enabled: true
 spring:
    datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 5
      max-active: 20
      min-idle: 5
      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
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      filters: stat,wall,slf4j
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMills=500
      use-global-data-source-stat: true    

这种配置得益于springboot可以自动合并这两个文件的配置。是不是很方便,以后部署的时候若不是大的改动就不会动yml文件了。

发布了31 篇原创文章 · 获赞 1 · 访问量 5664

猜你喜欢

转载自blog.csdn.net/wjs040/article/details/96488608