【java】【重构一】分模块开发设计实战

目录

一、创建项目 

1、先创建一个空项目

2、设置项目SDK等

二、创建父模块 选择springboot

1、创建父模块parent

2、删除多余文件,只保留pom.xml

3、修改pom.xml

4、将部分公共依赖加入到pom

三、创建实体类子模块entity

1、创建实体类子模块entity

2、删除无关文件

3、修改pom

4、复制实体类文件entity到目录下(没有就创建)

四、创建工具类子模块utils

1、创建工具类子模块utils

 2、删除多余文件,只保留pom.xml

3、修改pom.xml 

4、复制实体类文件utils到目录下(没有就创建)

五、创建web项目子模块web-management

1、创建web项目子模块web-management

2、修改pom.xml

3、复制web项目文件

4、新建resources

5、resources新建目录com/bocai/mapper

6、复制相关文件

7、 复制启动程序

六、启动服务

1、启动后端AppApplication

2、启动ngnix 

3、验证数据


前言:接《[JavaWeb]【十四】web后端开发-MAVEN高级》开始从头开始分模块设计java项目

一、创建项目 

1、先创建一个空项目

2、设置项目SDK等

SDK选择1.8,Language Level 选择8。 

二、创建父模块 选择springboot

1、创建父模块parent

2、删除多余文件,只保留pom.xml

3、修改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><!-- 1、修改为2.7.5 --><version>2.7.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.bocai</groupId><artifactId>bocai-parent</artifactId><version>0.0.1-SNAPSHOT</version>	<!-- 2、新增设置打包模式为pom  --><packaging>pom</packaging><!--   3、注释 name与description --><!--<name>bocai-parent</name><description>bocai-parent</description>--><properties><java.version>1.8</java.version></properties><dependencies><!--  4、注释以下依赖  --><!--<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>-->
</dependencies><!-- 5、注释 build   --><!--<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>--></project>

4、将部分公共依赖加入到pom

<?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><!-- 1、修改为2.7.5 --><version>2.7.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.bocai</groupId><artifactId>bocai-parent</artifactId><version>0.0.1-SNAPSHOT</version><!-- 2、新增设置打包模式为pom  --><packaging>pom</packaging><!--   3、注释 name与description --><!--<name>bocai-parent</name><description>bocai-parent</description>--><properties><java.version>1.8</java.version></properties><dependencies><!--  6、 加入的公共依赖  --><!--   lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--  4、注释以下依赖  --><!--<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>--></dependencies><!-- 5、注释 build   --><!--<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>--></project>

三、创建实体类子模块entity

1、创建实体类子模块entity

2、删除无关文件

3、修改pom

<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.bocai</groupId><artifactId>bocai-parent</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../bocai-parent/pom.xml</relativePath></parent><artifactId>bocai-entity</artifactId><!--  1、注释 打包方式(不确定)--><!--<packaging>jar</packaging> --><name>bocai-entity</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- 2、  注释 junit  --><!--<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency>--></dependencies>
</project>

4、复制实体类文件entity到目录下(没有就创建)

四、创建工具类子模块utils

1、创建工具类子模块utils

 

 2、删除多余文件,只保留pom.xml

3、修改pom.xml 

<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.bocai</groupId><artifactId>bocai-parent</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../bocai-parent/pom.xml</relativePath></parent><artifactId>bocai-utils</artifactId><!--  1、注释 打包方式(不确定)--><!--<packaging>jar</packaging> --><name>bocai-utils</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- 2、  注释 junit  --><!--<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency>--><!-- 3、加入依赖 --><!--   web起步依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--        阿里云OSS依赖--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version></dependency><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version></dependency><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version></dependency><!-- no more than 2.3.3--><dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.3.3</version></dependency><!--JWT令牌--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency></dependencies>
</project>

4、复制实体类文件utils到目录下(没有就创建)

五、创建web项目子模块web-management

1、创建web项目子模块web-management

2、修改pom.xml

核心是引入本文的子模块entity和utils

<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.bocai</groupId><artifactId>bocai-parent</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../bocai-parent/pom.xml</relativePath></parent><artifactId>bocai-web-management</artifactId><!--  1、注释 打包方式(不确定)--><!--<packaging>jar</packaging> --><name>bocai-web-management</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- 2、  注释 junit  --><!--<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency>--><!-- 3、加入 子模块依赖 --><dependency><groupId>com.bocai</groupId><artifactId>bocai-entity</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>com.bocai</groupId><artifactId>bocai-utils</artifactId><version>0.0.1-SNAPSHOT</version></dependency><!-- 4、加入依赖 --><!--   web起步依赖 --><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.3.1</version></dependency><!--   mysql驱动 --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><!--   springboot单元测试 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- PageHelper分页插件https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version></dependency><!--fastJSON--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version></dependency><!--AOP--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>
</project>

 

3、复制web项目文件

部分文件可能会报错,主要体现在  web起步依赖 ,到每个文件单独处理一下

4、新建resources

5、resources新建目录com/bocai/mapper

6、复制相关文件

7、 复制启动程序

package com.bocai;import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;@Slf4j
@ServletComponentScan  //开启了对servlet组件支持  Filter
@SpringBootApplication
public class AppApplication {public static void main(String[] args) {SpringApplication.run(AppApplication.class, args);log.info("============ 服务启动完成!=====================");}}

 AppApplicationTests 注释了一个测试代码,打包的时候报错

package com.bocai;import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.util.Date;
import java.util.HashMap;
import java.util.Map;@SpringBootTest
class AppApplicationTests {@Testvoid contextLoads() {}/*** 生成Jwt令牌*/@Testpublic void testGenJwt(){Map<String, Object> claims = new HashMap<>();claims.put("id",1);claims.put("name","bocai");String jwt = Jwts.builder().signWith(SignatureAlgorithm.HS256, "bocai") // 签名算法 算法有哪些上官网.setClaims(claims) //自定义的内容(载荷).setExpiration(new Date(System.currentTimeMillis() + 3600* 1000)) // 设置有效期为1h.compact();System.out.println(jwt);}/*** 解析Jwt, parseClaimsJws(换成上面生成的jwt)*/
//    @Test
//    public void testPareJwt(){
//        Claims claims = Jwts.parser()
//                .setSigningKey("bocai") //runa要与前面生成一致
//                .parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiYm9jYWkiLCJpZCI6MSwiZXhwIjoxNjk3NTM5MTQzfQ.kh_8USqITQHQvnOpWuF8Z7BB0x_BVhfZvOgF1JMcj8o")
//                .getBody();
//        System.out.println(claims);
//
//    }}

六、启动服务

1、启动后端AppApplication

2、启动ngnix 

3、验证数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/113789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jprofiler V14中文使用文档

JProfiler介绍 什么是JProfiler? JProfiler是一个用于分析运行JVM内部情况的专业工具。 在开发中你可以使用它,用于质量保证,也可以解决你的生产系统遇到的问题。 JProfiler处理四个主要问题: 方法调用 这通常被称为"CPU分析"。方法调用可以通过不同的方式进行测…

C++中的继承(超详细)

C中的继承 1.继承的概念及定义1.1继承的概念1.2 继承定义1.2.1 定义格式1.2.2继承关系和访问限定符1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6.继承与静态成员7.继承的总结和反思 1.继承的概念及定义 1…

算法通关村第十关青铜挑战——什么是快速排序

大家好&#xff0c;我是怒码少年小码。 快速排序 选取pivot中心轴将大于pivot中心轴的元素放在中心轴的右边将小于pivot中心轴的元素放在中心轴的左边重复上述过程 实现方式一&#xff1a; void quickSort(int arr[], int left, int right) {if (left < right) {int pi…

新兴网络安全威胁:数字防御新格局

根据Check Point Research (CPR)的数据&#xff0c;今年上半年犯罪活动大幅增加&#xff0c;第二季度全球每周网络攻击激增 8%&#xff0c;这创下了两年来的最高成交量。 勒索软件和黑客行为等传统威胁已经演变&#xff0c;犯罪团伙不断调整其方法和工具来渗透和影响世界各地的…

c语言练习93:环形链表的约瑟夫问题

环形链表的约瑟夫问题 环形链表的约瑟夫问题_牛客题霸_牛客网 描述 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数&#xff0c;报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后&#xff0c;只剩下一个人&#xff0c;问最后留下的这个人编号是…

粘包和半包问题及解决办法

粘包问题是指数据在传输时&#xff0c;在一条消息中读取到了另一条消息的部分数据&#xff0c;这种现象就叫做粘包。 半包问题是指数据在传输时&#xff0c;接收端只收到了部分数据&#xff0c;而非完整的数据&#xff0c;就叫做半包。 产生粘包和半包问题原因&#xff1a; …

Error: GlobalConfigUtils setMetaData Fail Cause:java.lang.NullPointerException

文章目录 1、在开发中会出现这样的错误。2、其次&#xff0c;再看其他错误&#xff1a; 1、在开发中会出现这样的错误。 完整错误&#xff1a;Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause…

【面试HOT100】链表树

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于LeetCodeHot100进行的&#xff0c;每个知识点的修正和深入主要参考…

【Golang | reflect】利用反射实现方法的调用

引言 go语言中&#xff0c;如果某个数据类型实现了一系列的方法&#xff0c;如何批量去执行呢&#xff0c;这时候就可以利用反射里的func (v Value) Call(in []Value) []Value 方法。 // Call calls the function v with the input arguments in. // For example, if len(in)…

python自动化测试框架unittest与pytest的区别

有使用过unittest单元测试框架&#xff0c;再使用pytest单元测试框架&#xff0c;就可以明显感觉到pytest比unittest真的简洁、方便很多。 unittest与pytest的区别&#xff1a; 主要从用例编写规则、用例的前置和后置、参数化、断言、用例执行、失败重运行和报告这几个方面比…

【Spring Cloud】openfeign负载均衡方案(和lb发展历史)

文章目录 版本1&#xff1a;原始loadBalancerClient方案版本2&#xff1a;ribbon-loadbalancer方案版本3&#xff1a;openfeign方案&#xff08;即**方案2openfeign版本**&#xff09; 本文描述了Spring Cloud微服务中&#xff0c;各个服务间调用的负载均衡方案的升级历史&…

vue使用pdf 导出当前页面,(jspdf, html2canvas )

需要安装两个插件 npm install html2canvas jspdfyarn add html2canvas jspdf<div class"app-container" id"pdfPage"><!--这个放你需要导出的内容--> </div><el-button size"mini" click"onExportPdf">导出…

记录一次线下渗透电气照明系统(分析与实战)

项目地址:https://github.com/MartinxMax/S-Clustr 注意 本次行动未造成任何设备损坏,并在道德允许范围内测试 >ethical hacking< 发现过程 在路途中,发现一个未锁的配电柜,身为一个电工自然免不了好奇心(非专业人士请勿模仿,操作不当的话220V人就直了) 根据照片,简…

springBoot--web--http缓存机制测试

springBoot--web--http缓存机制测试 前言1、多端内容适配基于请求头内容协商&#xff08;默认开启&#xff09;基于请求参数内容协商&#xff08;需要开启&#xff09; 2、默认返回json数据3、设置返回xml数据导入jackson-dataformat-xml包在类文件中添加注解 JacksonXmlRootEl…

MYSQL 根据唯一索引键更新死锁问题

mysql 死锁问题及死锁权重分析 问题发生过程&#xff1a;1、生产发现死锁一次 语句为sql1:UPDATE table set data ‘123’ where business_no ABC; 该行数据的id1&#xff0c; business_no ABC tablbe 字段 id&#xff1a;主键 business_no为唯一索引字段&#xff0c;其…

设计模式截图记录

设计模式截图记录

设置Oracle环境变量

打开系统变量 1.ORACLE_HOME&#xff1a; 新建一个变量home&#xff0c;再在path中添加&#xff1a;%ORACLE_HOME%\BIN 变量名&#xff1a; ORACLE_HOME 变量值&#xff1a; D:\app\chenzhi\product\11.2.0\dbhome_2&#xff08;自己的存放地址&#xff09; 2.NLS_LANG&am…

普通二维码跳转微信小程序实战

简介 服务端springboot项目,前端基于uniapp的微信小程序,要求扫描二维码之后进入到小程序指定页面,下面记录一下实现过程以及过程中遇到的问题. 实现过程 下面是成功跳转的配置截图: 首先说下二维码规则,这个地方需要填写扫描二维码之后打开的地址,这个地址在我的项目里…

idea热加载,JRebel 插件是目前最好用的热加载插件,它支持 IDEA Ultimate 旗舰版、Community 社区版

1.如何安装 ① 点击 https://plugins.jetbrains.com/plugin/4441-jrebel-and-xrebel/versions 地址&#xff0c;下载 2022.4.1 版本。如下图所示&#xff1a; ② 打开 [Preference -> Plugins] 菜单&#xff0c;点击「Install Plugin from Disk…」按钮&#xff0c;选择刚下…

腾讯云创建了jenkins容器,但无法访问

1、首先&#xff0c;查看本机能不能ping通你的腾讯云服务器 如果ping的通那就下一步 2、查看腾讯云服务器的防火墙关了没&#xff0c;没关关掉、 firewall-cmd --state not running 3、那就在云服务器的控制台开放端口