3.admin-后台项目搭建
项目基于Maven聚合开发
环境:
Springboot: 3.2.0
JDK:17
Maven: 3.9.4
Mysql: 8.0.30
IDEA: 2023.03
1.项目结构:
|
zhexin-b2csc (父类工程) |
zheixn-common (公共的类) |
common-uilt (工具类) |
|
common-service (服务类) |
||
|
zheixn-model (存放实体类) |
||
|
zhexin-manage (存放后台管理系统) |
2.创建项目:

创建子工工程:

知识点:
在实体类中:
dto: 表示客户端传来的对象
vo: 表示返回给客户端的对象
pojo,entity , domain : 表示表字段的实体类
3.引入依赖
位于最外层zhexin-b2csc
1.继承Springboot
<!--依赖Springboot-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.0</version>
</parent>
2.项目总体依赖
全部依赖如下:
<mysql.v>8.0.30</mysql.v> <fastjson2.v>2.0.39</fastjson2.v> <lombok.v>1.18.20</lombok.v> <mybatis.v>3.5.6</mybatis.v>
pom.xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--依赖Springboot-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.0</version>
</parent>
<!--版本-->
<modelVersion>4.0.0</modelVersion>
<!--本项目属性-->
<groupId>com.zhexin</groupId>
<artifactId>zhexin-b2csc</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<!--子类-->
<modules>
<module>zhexin-common</module>
<module>zhexin-model</module>
<module>zhexin-manage</module>
</modules>
<!--版本号-->
<properties>
<!--jdk版本-->
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--项目依赖版本-->
<mysql.v>8.0.29</mysql.v>
<fastjson2.v>2.0.39</fastjson2.v>
<lombok.v>1.18.20</lombok.v>
<!--版本不能太高,否则后面的mybatis依赖冲突-->
<mybatis.v>3.0.1</mybatis.v>
</properties>
<!-- 锁定版本 -->
<dependencyManagement>
<!--依赖项-->
<dependencies>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.v}</version>
</dependency>
<!-- fastjson2 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>${fastjson2.v}</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.v}</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.v}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
3.zheixn-common依赖
导入这一个类就行
<dependency>
<artifactId>hutool-all</artifactId>
<groupId>cn.hutool</groupId>
<version>${hutool.v}</version>
</dependency>
版本:
<hutool.v>5.8.23</hutool.v>
4. common-uilt依赖
需要
io.minio 存储服务, 参考: SpringBoot整合MinIO 「看这一篇就够了」_兔老大-RabbitBoss的博客-CSDN博客
父类的fastjson
我们的实体类:zhexin-model
启动spring-web
代码如下:
pom.xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.zhexin</groupId>
<artifactId>zhexin-common</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>common-uilt</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!--web启动器,并配置作用域-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>provided</scope>
</dependency>
<!--用父类版本的fastjson-->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
<!--引入我们自己的实体类-->
<dependency>
<groupId>com.zhexin</groupId>
<artifactId>zhexin-model</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--启动存储服务-->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.2</version>
</dependency>
</dependencies>
</project>
5. common-service依赖
需要
我们的: common-uilt
我们的实体类:zhexin-model
启动spring-web
启动spring-redis缓存
代码:
pom.xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.zhexin</groupId>
<artifactId>zhexin-common</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>common-service</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!--我们自己的工具类-->
<dependency>
<groupId>com.zhexin</groupId>
<artifactId>common-uilt</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--我们自己的实体类-->
<dependency>
<groupId>com.zhexin</groupId>
<artifactId>zhexin-model</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--启动web服务,并设置范围-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>provided</scope>
</dependency>
<!--启动redis缓存-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
</project>
6. zhexin-model依赖,并创建实体类文件夹
创建实体类文件夹

需要:
lombok依赖
父类版本的fastjson
pom.xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.zhexin</groupId>
<artifactId>zhexin-b2csc</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>zhexin-model</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- lombok的依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--大概也意思是便于微服务:https://doc.xiaominfo.com/docs/quick-start-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.1.0</version>
</dependency>
<!--文件解析-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.0</version>
</dependency>
<!--用父类版本的fastjson-->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
</dependencies>
</project>
7. zhexin-manage后端依赖
需要:
启动webredis缓存mybatismysql驱动common-service依赖测试类<!--配置文件解析:https://blog.csdn.net/weixin_44307065/article/details/109473284-->
pom.xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.zhexin</groupId>
<artifactId>zhexin-b2csc</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>zhexin-manage</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 启动web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- redis缓存 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- common-service依赖 -->
<dependency>
<groupId>com.zhexin</groupId>
<artifactId>common-service</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--测试类-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!--配置文件解析:https://blog.csdn.net/weixin_44307065/article/details/109473284-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.3</version>
</dependency>
</dependencies>
</project>


5.学习接口文档类
我们导入的包 Knife4j :是 Swagger 的加强类 ,作用是生成接口文档
官网地址:https://doc.xiaominfo.com/
使用方法 :https://doc.xiaominfo.com/docs/quick-start
常用注解:
@Tag: 用在controller类上,对controller进行说明
@Operation: 用在controller接口方法上对接口进行描述
@Parameters:用在controller接口方法上对单个参数进行描述
@Schema: 用在实体类和实体类属性上,对实体类以及实体类属性进行描述
6.导入log和mybatis配置文件
1.导入配置
因为我们的写的是后台的系统所以:放到zhexin-manage包下
统一放到资源目录下

这里要改成自己的

logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<contextName>logback</contextName>
<!-- 日志的输出目录 ,,改成自己的 -->
<property name="log.path" value="Z:\IDEA\哲心创造\zhexin-b2csc\logs\manage" />
<!--控制台日志格式:彩色日志-->
<!-- magenta:洋红 -->
<!-- boldMagenta:粗红-->
<!-- cyan:青色 -->
<!-- white:白色 -->
<!-- magenta:洋红 -->
<property name="CONSOLE_LOG_PATTERN" value="\n-------------------------------------------------------------------------------\n
%yellow(%date{yyyy-MM-dd HH:mm:ss}) %highlight([%-5level]) %green(%logger) %msg%n"/>
<!--文件日志格式 ,,, 加个分割线看到清楚-->
<property name="FILE_LOG_PATTERN" value="\n-------------------------------------------------------------------------------\n
%date{yyyy-MM-dd HH:mm:ss} [%-5level] %thread %file:%line %logger %msg%n" />
<!--编码-->
<property name="ENCODING" value="UTF-8" />
<!-- 控制台日志 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 临界值过滤器 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>${ENCODING}</charset>
</encoder>
</appender>
<!-- 文件日志 -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${log.path}//log.log</file>
<append>true</append>
<encoder>
<pattern>%date{yyyy-MM-dd HH:mm:ss} %msg%n</pattern>
<charset>${ENCODING}</charset>
</encoder>
</appender>
<!-- 开发环境 -->
<springProfile name="dev">
<!-- com.atguigu日志记录器:业务程序INFO级别 -->
<logger name="com.atguigu" level="INFO" />
<!-- 根日志记录器:INFO级别 -->
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</springProfile>
</configuration>
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC
"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 设置驼峰标识 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!-- 打印SQL语句 -->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<plugins>
<!-- 分页插件 导入的包-->
<plugin interceptor="com.github.pagehelper.PageInterceptor"/>
</plugins>
</configuration>
7.编写application.yaml

application.yaml
#给应用起个名字
spring:
application:
name: zhexin-manage
#引用我们的dev开发环境
profiles:
active: dev
application-dev.yaml
#项目端口号
server:
port: 10001
spring:
datasource:
#默认数据源
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.199.128:3306/zhexinb2csc?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: root
#配置redis
data:
redis:
host: 192.168.199.128
port: 6379
#配置mybatis:
mybatis:
#mysql语句
mapper-locations: classpath:/mapper/*/*.xml
#mybatis配置类
config-location: classpath:/mybatis-config.xml
创建对应的包

8.代码层框架创建
1.创建java包
mapper下的包,为了防止弄错了,我们于java的包结构保持一致

2. 编写application代码
package com.zhexin;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ManageApplication {
public static void main(String[] args) {
SpringApplication.run(ManageApplication.class,args);
}
}
2.编写controller代码
controller包下创建IndexController类
package com.zhexin.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Tag(name = "用户接口") //swagger文档注释
@RestController //注册到bean
@RequestMapping("/admin/system/index") //注册访问路径
public class IndexController {
}
9.编辑Knife4j配置(接口文档配置)

package com.zheixn.common.service;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class Knife4jConfig {
@Bean
public GroupedOpenApi adminApi() { // 创建了一个api接口的分组
return GroupedOpenApi.builder()
.group("admin-api") // 分组名称
.pathsToMatch("/admin/**") // 接口请求路径规则
.build();
}
/***
* @description 自定义接口信息
*/
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info()
.title("哲心商城API接口文档")
.version("1.0")
.description("哲心商城API接口文档")
.contact(new Contact().name("zhexin"))); // 设定作者
}
}
访问:http://项目ip:端口号/doc.htm ,可以看到接口文档
10.运行


浙公网安备 33010602011771号