天天看点

SpringBoot 集成 mybatis+Aili Druid

1、引入依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>


    <groupId>com.sunck</groupId>
    <artifactId>sunck</artifactId>
    <version>1.0</version>
    <name>sunck</name>
    <description>Demo project for Spring Boot</description>

    <!--版本信息-->
    <properties>
        <java.version>1.8</java.version>
        <druid.version>1.1.23</druid.version>
        <mybatis-version>2.1.3</mybatis-version>
    </properties>

    <!-- SpringBoot启动父依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <!-- Spring Boot Web 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- SpringBoot的依赖配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- mybatis配置-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis-version}</version>
        </dependency>

        <!--  Mysql驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- thymeleaf引擎-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!-- 引入 Druid 数据源依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>

        <!-- lombok注解依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!-- logback 依赖-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>

        <!--Slf4j 依赖-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
        </dependency>
        <!-- 热部署依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
            <scope>runtime</scope>     <!--只在运行时起作用  打包时不打进去-->
        </dependency>
      
    </dependencies>



</project>
           

2、配置文件:

# MyBatis
mybatis:
  # 搜索指定包别名-实体类
  type-aliases-package: com.sunck.modules.**.entity
  # 配置mapper的扫描,找到所有的mapper.xml映射文件
  mapper-locations: classpath*:mappings/**/*Mapper.xml
  # 加载全局的配置文件
  config-location: classpath:mybatis/mybatis-config.xml


# 项目配置
spring:
  # 页面模板配置
  thymeleaf:
    mode: HTML
    encoding: utf-8
    # 模板缓存
    cache: false
  jackson:
    time-zone: GMT+8
    # 格式化日期格式
    date-format: yyyy-MM-dd HH:mm:ss
    # 设置空如何序列化
    default-property-inclusion: non_empty
    parser:
      # 允许出现特殊字符和转义符
      allow_unquoted_control_chars: true
      # 允许出现单引号
      allow_single_quotes: true
  # 配置文件设置
  profiles:
    active: mysqlDruid
  servlet:
    # 文件上传限制
    multipart:
      # 当个文件上传大小
      max-file-size: 10MB
      # 总上传文件大小
      max-request-size: 100MB
  devtools:
    restart:
      # 热部署开关
      enabled: true
           

这里有一个点要说一下是,

profiles.active: mysqlDruid,利用active引用外部的druid配置文件

SpringBoot 集成 mybatis+Aili Druid

贴一下配置:

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    druid:
      # 数据源
      url: jdbc:mysql://localhost:3306/zb_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
      username: root
      password: root123
      # 初始连接数
      initialSize: 5
      # 最小连接池数量
      minIdle: 10
      # 最大连接池数量
      maxActive: 20
      # 配置获取连接等待超时的时间
      maxWait: 60000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      minEvictableIdleTimeMillis: 300000
      # 配置一个连接在池中最大生存的时间,单位是毫秒
      maxEvictableIdleTimeMillis: 900000
      # 配置检测连接是否有效
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      # 用于采集web-jdbc关联监控的数据
      webStatFilter:
        enabled: true
      # 展示Druid的统计信息
      statViewServlet:
        #是否启用StatViewServlet(监控页面)默认值为false(考虑到安全问题默认并未启动,如需启用建议设置密码或白名单以保障安全)
        enabled: true
        # 设置白名单为本地,不填则允许所有访问
        allow: 127.0.0.1
        #配置Druid 访问链接
        url-pattern: /SunckDruid/*
        # 控制台管理用户名和密码
        login-username:
        login-password:
      filter:
        stat:
          enabled: true
          # 慢SQL记录
          log-slow-sql: true
          # 慢SQL缺省值 默认3秒
          slow-sql-millis: 1000
          # SQL合并配置
          merge-sql: true
        wall:
          config:
            #是否允许一次执行多条语句,缺省关闭
            multi-statement-allow: true
          #对被认为是攻击的SQL进行LOG.error输出
          log-violation: false
          #对被认为是攻击的SQL抛出SQLException
          throw-exception: true
           

RUN启动,很稳。

一起学习的小伙伴,如果你有幸看到这篇文章,一定要自己去搭一次框架,去看一下框架所有的api你会发现新的大陆。

本项目开源,持续更新中:https://gitee.com/sunck/sunck