SpringBoot项目配置模板(SpringBoot + MybatisPlus + Druid)

Posted HUTEROX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot项目配置模板(SpringBoot + MybatisPlus + Druid)相关的知识,希望对你有一定的参考价值。


这个其实也只是我自己当前使用的一个模板,而且还没有整合Redis只是单纯地去整合了一下springboot 和 mybatisplus。这里的话我的数据库是使用的mysql5.7 关于 8.0的话其实只是改一下url即可。

项目基本配置

本次的springboot的版本为V2.60
这里我其实是用 idea 自带的那个工具创建的,当然你创建一个maven项目然后导入我下面给的配置文件也是一样的。这个配置文件是当前所有的配置。

<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.huterox</groupId>
    <artifactId>WhiteHoleBoot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>WhiteHoleBoot</name>
    <description>WhiteHoleBoot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
<!--        小爷的数据库相关配置文件-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
<!--        德鲁伊的配置文件-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.17</version>
        </dependency>
<!--        mybatisplus的配置-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>

<!--        MVC的配置文件主要是用人家做接口-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
<!--        热更新的配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>

                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <fork>true</fork>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

热加载开启

这个我要说一下的是在那个idea里面你光导入那个配置是没用的还要设置一下。
这里主要是两个地方


这里的话不同的idea版本好像还不一样,我这里是2021的。

数据库配置

再次安利一下一个软件那就是 phpstudy 集成开发环境,尤其是在Windows环境下,一键化管理不要太舒服,而且这个不是通过工具管理环境不容易因为配置或者系统环境导致的问题而崩溃,而且可以随时切换数据库版本,软件管理里面直接安装去,包括可视化工具。

这次的话看到我们的配置文件

我这里使用的是yaml配置文件

spring:
  devtools:
    restart:
      enabled: true
  datasource:
    username: Huterox
    password: password
    url: jdbc:mysql://localhost:3306/WhiteHole?useSSL=false&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver

这里注意一下如果你是MySQL 8.0的话
注意你的 url 这样改

    url: jdbc:mysql://localhost:3306/WhiteHole?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GTM%2B8
    

其实就是加了个时区,至于驱动那是通用的,不用改,你要是5.7的用com.mysql.jdbc.Driver还会给你警告,太老了。

配置德鲁伊

这个看你吧,反正我这里先用的是德鲁伊。

   druid:
      aop-patterns: com.atguigu.admin.*  #springbean监控
      filters: stat,wall,slf4j  #所有开启的功能

      stat-view-servlet: #监控页配置
        enabled: true
        login-username: admin
        login-password: admin
        resetEnable: false

      web-stat-filter: #web监控
        enabled: true
        urlPattern: /*
        exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'


      filter:
        stat: #sql监控
          slow-sql-millis: 1000
          logSlowSql: true
          enabled: true
        wall: #防火墙
          enabled: true
          config:
            drop-table-allow: false

你直接套这个模板就好了,不够再改。原因的话是因为我这里使用的是druidstart 也就是官方配置好的德鲁伊,我要用引入这个场景,设置配置就好了。
http://127.0.0.1:8000/druid/index.html

使用mybatisplus

这个其实没啥,直接导入配置文件就可以,至于其他的配置不需要你改,也最好不要去改,到时候怎么死的都不知道。好好用注解,按默认规则啥事没有。

总结

完整的opm配置文件如下(其实前面给了)

<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.huterox</groupId>
    <artifactId>WhiteHoleBoot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>WhiteHoleBoot</name>
    <description>WhiteHoleBoot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
<!--        小爷的数据库相关配置文件-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.17</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>

                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <fork>true</fork>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

完整的application.yaml配置文件如下

server:
  port: 8000

spring:
  devtools:
    restart:
      enabled: true
  datasource:
    username: Huterox
    password: password
    url: jdbc:mysql://localhost:3306/WhiteHole?useSSL=false&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver

    druid:
      aop-patterns: com.atguigu.admin.*  #springbean监控
      filters: stat,wall,slf4j  #所有开启的功能

      stat-view-servlet: #监控页配置
        enabled: true
        login-username: admin
        login-password: admin
        resetEnable: false

      web-stat-filter: #web监控
        enabled: true
        urlPattern: /*
        exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'


      filter:
        stat: #sql监控
          slow-sql-millis: 1000
          logSlowSql: true
          enabled: true
        wall: #防火墙
          enabled: true
          config:
            drop-table-allow: false

基本上大概就先这样,后面有需要我会加redis之类的配置,或者有需要的我会写写加入使用 mybatis 的,毕竟其实单从查找来看确实是直接用mybatis其实问题也不大,毕竟大多数还是联表查询,大多数情况还是要自己手写sql,不过从那个自动映射来说还是不错的,当然还是要配置一下的,不过也没事,官方给的要配置的玩意也不多,而且我前面也是有给过模板的,至于在CSDN 的哪一篇博文我就不清楚了,反正我本地是有的~。当然总体上确实不如Django爽,但是奈何 spring家族强大呀,好多东西只是配置麻烦但是这不是有springboot 嘛,直接套模板配置,过了这关,开发起来还是很舒服的,虽然有时候相对原生,但是还是那句话很多东西被写烂了,都有现成的模板代码,只是这些玩意可能不是官方给的,是第三方(各种网站copy的),要创新的估计只有算法喽~那是真头痛。

以上是关于SpringBoot项目配置模板(SpringBoot + MybatisPlus + Druid)的主要内容,如果未能解决你的问题,请参考以下文章

Springboot 基本概念

SpringBoot 04_集成SpringDataJpa

使用springboot + druid + mybatisplus完成多数据源配置

SpringBoot项目配置模板(SpringBoot + MybatisPlus + Druid)

基于springboot实现快递代取管理系统

SpringCloud与SpringBoot区别