知识库系统开发实战
页面展示
1 首页
2 登录页面
登录成功后首页面:
3 用户管理页面
编辑:
4 电子书管理页面
文档管理:
编辑:
5 分类管理页面
6 关于我页面
退出登录:
一、springboot项目搭建
完成项目后端工程配置。
提示一下因为要用VUE3前后端分离,所以resources目录下的static、templates包都不会用,可以直接删了。
1.1 项目初始化配置
1.配置编码
2.设置jdk为1.8
3.配置maven仓库位置和maven的settings文件。
4.配置git。
1.2 代码关联Git远程仓库
1.在远程仓库上创建一个新项目
2.将本地项目关联到远程仓库
1.3 启动日志优化
1.logback日志样式修改
在resources目录下,添加logback-spring.xml文件。修改日志样式。
2.增加启动成功日志
修改主启动类
@SpringBootApplication
public class SnowXueApplication {
private static final Logger LOG = LoggerFactory.getLogger(SnowXueApplication.class);
public static void main(String[] args) {
// SpringApplication.run(WikiApplication.class, args);
SpringApplication app = new SpringApplication(SnowXueApplication.class);
Environment env = app.run(args).getEnvironment();
LOG.info("=====================启动成功=======================");
LOG.info("地址:http://127.0.0.1:{}",env.getProperty("server.port"));
}
}
3.修改启动图案
在resources添加banner.txt
1.4 使用HTTP Client测试接口
一般测试接口会使用postman,也可以用idea自带的HTTP Client。
做法:
1)新建http包
2)在http包下创建一个文件,命名随意,但后缀必须为http,例如test.http
3)在该文件中输入(gtr)
GET http://localhost:8080/hello
Accept: application/json
###
4)运行主启动类
5)点击test.http里面的三角形,就可以进行测试
1.5 集成热部署
1)添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
2)
3)按两次shift,输入registry
二、完善后端架构
2.1 数据库配置
1.IDEA配置数据库连接
作用:可以在IDEA中直接操作数据库
2)添加sql脚本(以后就将sql脚本写入里面)
如何执行sql脚本?选择sql脚本,右键,点击exceute。就可
2.2 集成MyBatis
1.添加依赖
<!-- 集成mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<!-- 集成mysql连接 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
2.配置数据源
spring:
datasource:
# 如果没有配置时区这些信息,可能会报错,注意一下
url: jdbc:mysql://localhost:3306/snow_xue?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
3.创建pojo包,里面放表对应的实体类
4.创建mapper包,创建实体类对应的mapper接口
5.在resources下创建mapper包,放mapper.xml文件
6.在主启动类上加上@MapperScan注解
7.配置mapper.xml文件的位置
mybatis:
mapper-locations: classpath:/mapper/**/*.xml
2.3 Mybatis-Generator
1.添加插件
<!-- mybatis generator 自动生成代码插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<configurationFile>src/main/resources/generator/generator-config.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
</plugin>
2.添加generator-config.xml文件,这个别背,网络上有,改改就可以了
3.增加代码生成器对应的启动命令
4.点击按钮如下
2.4 电子书列表查询接口开发
1.准备数据库表
create table `ebook` (
`id` bigint not null comment 'id',
`name` varchar(50) comment '名称',
`category1_id` bigint comment '分类1',
`category2_id` bigint comment '分类2',
`description` varchar(200) comment '描述',
`cover` varchar(200) comment '封面',
`doc_count` int comment '文档数',
`view_count` int comment '阅读数',
`vote_count` int comment '点赞数',
primary key (`id`)
) engine = innodb default charset = utf8mb4 comment '电子书';
insert into `ebook`(id,name,description) values (1,'Java核心技术','如果你想正式、系统地学习Java,并打算将Java应用到实际工程项目中,那么这本《Java核心技术》必不可少。');
insert into `ebook`(id,name,description) values (2,'Java语言程序设计','java黑皮书被世界各地的大学选作教材,全球畅销20余年。');
insert into `ebook`(id,name,description) values (3,'Java编程思想','带大家去真正感受到Java语言的灵魂思想。');
insert into `ebook`(id,name,description) values (4,'Effective Java中文版','是Java开发人员案头上的一本不可或缺的参考书。');
insert into `ebook`(id,name,description) values (5,'Java并发编程实战','Java并发编程里程碑著作!从并发编程的基本理论入手,逐步介绍了在设计Java并发程序时各种重要的设计原则、设计模式以及思维模式。');
insert into `ebook`(id,name,description) values (6,'深入了解Java虚拟机','帮助国内数十万Java开发工程师和架构师加深了对JVM的认知,凭借一己之力拉高了 Java 开发者内功水平,把 JVM 带到了初级面试题环节。');
2.修改generator-config.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 配置mysql驱动-->
<classPathEntry location="E:\mysql\mysql-connector-java-5.1.6.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 不再追加xml内容-->
<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>
<commentGenerator>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--连接数据库-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/snow_xue?serverTimezone=UTC"
userId="root"
password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--java模型创建器,即创建实体类-->
<javaModelGenerator targetPackage="com.snow.snow_xue.pojo" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<!-- <property name="trimStrings" value="true" />-->
</javaModelGenerator>
<!--mapper.xml文件生成器-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--dao接口生成器-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.snow.snow_xue.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true