一、项目背景
1.springboot
springboot是所有基于spring开发项目的起点。springboot的设计是为了尽可能快的启动spring应用程序,并且尽可能的减少配置文件。约定优于配置,一种软件设计范式。
spring是javaEE的轻量化替代品,同时通过依赖注入和面向切面编程,使其功能强大;不过它的组件代码虽然是轻量化的,但是它的配置文件却是重量级的。尽管在后续的更新开发中,通过引入基于注解的组件扫描、基于java的可重构配置,一定程度上降低了程度;不过项目的依赖管理也还是一种耗时耗力的事情。
springboot对于spring的问题进行了改善和优化,同时基于约定优于配置的思想,可以使得开发人员不必在配置和逻辑业务中进行思维的转换,全身心投入逻辑业务的代码编写中,从而大大提高开发效率,一定程度上缩短了项目周期。
2.vue
vue是一个构建数据驱动的web界面的渐进式框架。
vue的目标是通过尽可能简单的API实现响应的数据绑定和组合视图组件。易于上手,同时易于与第三方库或既有项目的整合。
vue专注于MVVM的view层;它的核心是MVVM中的VM,即ViewModel,负责连接view和model,保证视图与数据的一致性,这种轻量化的架构让前端开发更加高效、便捷。
3.选择
开发一个项目,选择更加高校、便捷而且轻量化配置的框架,能够使得开发过程中减少除业务逻辑的代码开发外的所有时间,使得开发人员能够只用专注于代码开发,能够使得开发过程十分高效。
二、项目开发配置
1.开发工具:idea 2022
idea作为一款业界评价甚高的开发工具,具有十分强大的功能,包括智能代码助手、代码自动提示、重构、javaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析等等,同时,用户体验不够良好的eclipse、集成度不高的Vim、不够稳定的VS Code,开发者更愿意偏向使用idea作为开发工具。
2.数据库:Mysql
Mysql是一个关系型数据库管理系统。由于其的简单易用、价格低(对于多数个人用户而言是免费的)、小巧、支持查询语言(支持Sql)、性能高校、连接稳定、安全可靠、可移植性、开放式的分发、运行速度快。
3.数据库工具:MybatisPlus
(1)Mybatis
优点:
简单易学,容易上手;较JDBC代码量少;并不需要手动开关连接;很好的与各种数据库兼容;提供了很多第三方插件;同时能够与spring有很好的集成;想当灵活。sql语句编写在xml文件中,与程度代码分离,减少耦合,便于管理和优化,易与重用;能够利用xml文件更好的编写动态sql语句;提供映射标签,支持关系映射。
缺点:
sql语句编写工作量大、sql语句依赖于数据库,移植性差。
(2)MybatisPlus
简单来说就是一款Mybatis的增强工具,用于简化开发、提高效率。它并不需要编写sql语句、配置xml文件,只需要创捷查询类,就能够迅速连接数据库。也正因此,将service层、dao层、entity层绑定一起,耦合度太高。
三、项目开发
1.新建idea项目
填写名称、设定项目路径、选择JDK、点击下一步;
选择springboot的版本(建议3.0以下)、选择是否下载JDK以及Maven库、选择所需的依赖项目(勾选web->spring web)(其余依赖后续通过maven快速配置)、点击创建;
2.配置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 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.7.12</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>System</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>System</name>
<description>System</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>11</java.version>
<mybatis-plus.version>3.2.0</mybatis-plus.version>
</properties>
<dependencies>
<!-- 添加springmvc依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!-- Mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- websocket -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<!-- 数据库连接池 druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.2</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.5.4</version>
</dependency>
<!-- excel导出 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.12</version>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>