SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建

本文记录Idea下的SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建
1 创建外层的父级SpringBoot项目

SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第1张图片
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第2张图片
在这里插入图片描述
这是新工程的pom文件,注意这样的配置只能加载一些基础的插件,具体加载的插件如下:

 <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <mainClass>com.example.demo.DemoApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

是不包含 springboot-web 和 springboot-tomcat的,是需要自己进行加载的,这里需要注意。
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第3张图片

2 删除项目中以下的内容(红色对勾),注意 iml 文件不能删除,里面有相关插件的编译路径,一旦删除,会导致下面的 External Libraries 直接消失,项目也就失去意义了

SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第4张图片

3 配置相关的辅助插件

由于我们的项目是父级项目下包含了两个模块项目,则在dependencyManagement配置的属于父级项目下的顶层 pom ,后续的子工程在工程下的 pom 文件中,配置对应的包的时候,可以不用写版本号了,但是在父项目中是不会直接导入 dependencyManagement 中的包的,仅在在子项目中有对应包的时候才导入。

<dependencyManagement>
        <dependencies>
           <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
               <version>${spring-boot.version}</version>
              <type>pom</type>
               <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mp.version}</version>
            </dependency>
            <!--模板引擎 代码自动生成-->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>${velocity.version}</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-java.version}</version>
            </dependency>
            <!--mybatis-plus自动代码生成-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>${mp.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
4 创建子工程(Maven)

在项目名处,右键选择 Module 点击,配置好 SDK 即 JDK版本 点击下一步
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第5张图片
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第6张图片
然后就创建成功了,这里需要注意一个问题,Idea这里每当你创建一个新的 Maven 工程,它会自动让Maven的设置重置,【可能我未设置,不过我感觉应该设置不了一直不变】,由于重置了 Maven 可能导致某些插件下载不了,比如会有 Cannot resolve … maven-clean-2.* 这些的问题,由于本项目为父项目下的子模块,推荐Maven 仓库 和 父项目同一个文件夹。 这样的问题是您需要在 setting—>Maven 即重新配置本地Maven 进行项目插件管理,然后在 子项目 右键鼠标,选择 Maven–>Reload project 即可解决问题。
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第7张图片
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第8张图片

5 配置 demo-web 下的相关包(pom.xml)

SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第9张图片
pom.xml 中引入

<artifactId>demo-web</artifactId>
    <dependencies>
        <!--controller层-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- 版本不用自己加了 -->
          <!--  <version> 2.3.7.RELEASE</version>-->
        </dependency>
        <!--controller层-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
           <!-- <version>3.4.0</version>-->
        </dependency>
        <!--mybatis 自动代码生成-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
          <!--  <version>3.4.0</version>-->
        </dependency>
        <!--代码生成的模板引擎-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
        </dependency>
        <!--java 连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <!--swagger ui-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>
        <!--lombok简化getter 和 setter-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>
    </dependencies>


    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

然后再次选择 Maven中的 reload project 引入插件
在这里插入图片描述
然后该pom 引入的jar 包,由于上面配置了 Maven仓库和父项目一致,所以这个时候在父级External Libraries下发现新引入的包

SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第10张图片
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第11张图片

至此可以测试一下 Spring Boot 环境配置

在子模块 src 下创建下面的包和项目
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第12张图片
DemoApplication 代码

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

然后 run 发现 Spring Boot 成功发布,则说明环境没问题,不过,

SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第13张图片
会有以下的异常,这明显是由于数据库的原因导致的,即我们项目中未配置数据库相关的内容,主要是
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第14张图片
后面给了改善建议,则这里我们进行配置数据库就行了,这个主要是由于 nested exception is org.springframework.boot.autoconfigure.jdbc 引出的异常。
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第15张图片

解决策略

resources 文件夹下建立 application.yml 文件

SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第16张图片
application.yml 文件配置如下

spring:
  application:
    name: demo-web
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
    username: root
    password: 1123(这里是你的数据库密码)

然后再发布工程,成功!
SpringBoot+Springsecurity+Jwt+Swagger2 后台项目环境搭建_第17张图片

你可能感兴趣的:(Spring,Boot,spring,boot,java)