1、构建项目
1.1、构建说明
1、什么是聚合工程? 一个大型项目中包含了多个小型项目,通过打包方式进行定义
2、常见的打包方式分为
jar:单体式项目,前端页面通过静态HTML实现,且支持ES6写法
war:单体式项目,前端页面通过动态jsp实现,ES6语法有时会获取不到数据
pom:分布式架构,父级项目打包类型为pom,工具API打包类型为jar,业务项目打包类型为jar/war
1.2、创建父级工程jt
1.2.1、创建jt项目
1.2.2、导入依赖
pom文件
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
<groupId>org.example</groupId>
<artifactId>jt</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>jt-common</module>
<module>jt-manage</module>
</modules>
<!--我是父级工程,是聚合项目,可以包含子项目-->
<!--定义父级打包方式-->
<packaging>pom</packaging>
<properties>
<java.version>1.8</java.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</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>
<!--支持热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--引入插件lombok 自动的set/get/构造方法插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--引入数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--springBoot数据库连接 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--spring整合mybatis-plus 只导入MP包,删除mybatis包 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<!--springBoot整合JSP添加依赖 -->
<!--servlet依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<!--jstl依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--使jsp页面生效 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--添加httpClient jar包 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<!--引入dubbo配置(分布式服务框架) -->
<!--<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>-->
<!--添加Quartz的支持(任务调度框架) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
<!-- 引入aop支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--spring整合redis(缓存框架) -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
</dependencies>
<!--build标签只有添加了主启动类的java文件才需要,java是父级工程,只做jar包定义-->
## 1.3、创建jt-common项目(用作工具API) ### 1.3.1、创建项目 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200830141153639.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQ3NjY5MA==,size_16,color_FFFFFF,t_70#pic_center) **创建时,注意jt-common的父项要选择jt** ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200830141428827.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQ3NjY5MA==,size_16,color_FFFFFF,t_70#pic_center) ### 1.3.2、添加工具API ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200830141630712.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQ3NjY5MA==,size_16,color_FFFFFF,t_70#pic_center) **注:jt-common作为将来要被依赖的,它的pom文件不用修改**
1.4、创建jt-manage项目(用作启动模块)
1.4.1、创建项目,注意父级工程选择jt(同1.3创建jt-common一致)
1.4.2、编辑POM.xml文件
1.4.3 导入src文件
1.4.4、编辑yml文件
注:对于聚合工程而言,配置文件是写在包含启动类的模块下
1.4.5、配置项目启动项
若不配置的话,可能会出现访问页面报404的问题,如下图
3、jt后台业务说明
3.1、关于项目默认访问路径的说明
问题说明:为什么通过8091网址访问可以直接跳转到系统首页呢?web.xml其中有一项配置叫做默认欢迎界面
SpringBoot内部通过默认引擎,发送一个index请求,该请求不需要通过Controller层进行接受,会自己拼接视图解析器前缀和后缀,完成页面跳转。
3.2、通用页面跳转说明
说明:当用户发起请求时其中有多个请求时类似的功能,能够利用一个controller实现通用的页面跳转
- 新增商品
- 查询商品
- 规格参数
3.2.1、实现策略
*restFul风格实现1:
* 1.参数与参数之间使用/分隔
* 2.参数使用{}形式包裹
* 3.@PathVariable 实现数据的转化.
@GetMapping("/page/{moduleName}")
public String itemAdd(@PathVariable String moduleName){
//目的:跳转页面 item-add
return moduleName;
}
3.3、关于EasyUI介绍
注意引导相关文件
树的使用
数据网络的使用,此数据网络自带ajax请求
(码农的终极奥义,是成为一名合格的cv战士,我粘、我粘、我再粘)
3.4、MP机制实现分页
3.4.1、编辑实现类
@Service
public class ItemServiceImpl implements ItemService { //eclipse alt+shift+p
//alt +insert
@Autowired
private ItemMapper itemMapper;
/**
* 在进行分页查询时,MP必须添加配置类
* 利用MP机制,实现商品查询
* @param page
* @param rows
* @return
*/
@Override
public EasyUITable findItemByPage(Integer page, Integer rows) {
//查询条件根据更新时间进行排序.
QueryWrapper<Item> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("updated");
//当用户将参数传递之后,MP会自己执行分页操作后,将需要的数据进行封装.
//定义分页对象
IPage<Item> iPage = new Page<>(page,rows);
//根据分页对象执行数据库查询,之后获取其其他分页数据.
iPage = itemMapper.selectPage(iPage,queryWrapper);
//获取总记录数
int total = (int)iPage.getTotal();
//获取分页后的结果
List<Item> itemList = iPage.getRecords();
//封装返回值 返回
return new EasyUITable(total,itemList);
}
}
3.4.2、编辑配置类
package com.jt.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//1.标识配置类 配置类一般与@Bean注解联用!!!
@Configuration
public class MybatisPlusConfig {
//需要将对象交给容器管理Map集合 map<paginationInterceptor方法名,实例化之后的对象>
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
}