天天看點

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