SpringBoot构建聚合工程入门(2020/8/30)

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();
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值