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

这篇具有很好参考价值的文章主要介绍了【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、先创建一个空项目

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

2、设置项目SDK等

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

SDK选择1.8,Language Level 选择8。 

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

二、创建父模块 选择springboot

1、创建父模块parent

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

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

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

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

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

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

2、删除无关文件

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

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到目录下(没有就创建)

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

四、创建工具类子模块utils

1、创建工具类子模块utils

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

 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到目录下(没有就创建)

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

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

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

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

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起步依赖 ,到每个文件单独处理一下

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

4、新建resources

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

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

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

6、复制相关文件

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

7、 复制启动程序

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

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 {

    @Test
    void contextLoads() {
    }

    /**
     * 生成Jwt令牌
     */
    @Test
    public 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

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

2、启动ngnix 

3、验证数据

【java】【重构一】分模块开发设计实战,java,java,开发语言文章来源地址https://www.toymoban.com/news/detail-721446.html

到了这里,关于【java】【重构一】分模块开发设计实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Android的记事本设计和模块开发

    有一万五千字论文,完美运行。 由于编程技术的迅速发展,各种记事本APP随处可见,在人们的日常生活中经常使用的到。于是各种记事本APP也跟着发展起来。本文在通过在Android Studio开发平台上开发一个简单的多功能语音输入记事本APP的过程,同时了解记事本APP的功能实现,

    2024年02月03日
    浏览(51)
  • Node.js开发、CommondJS 、ES-Module模块化设计

    目录  Node.js是什么 基础使用 Node的REPL 全局变量  模块化设计 CommondJS规范  基础使用exports和module.exports require  CommondJS优缺点 AMD和CMD规范 ES_Module  基本使用方法 导出 导入  结合使用 默认导出 ES Module解析流程  Node与浏览器的对比  在浏览器中,HTML与CSS交给Blink处理,如果其

    2023年04月21日
    浏览(41)
  • AD9910模块高速DDS模块、功能性能讲解、开发调试注意事项、代码详解、电子设计大赛DDS

    AD9910是一款内置14 bit DAC的直接数字频率合成器(DDS),支持高达1GSPS的采样速率。AD9910采用高级DDS技术,在不牺牲性能的前提下可极大降低功耗。DDS/DAC组合构成数字可编程的高频模拟输出频率合成器,能够在高达400MHz的频率下生成频率捷变正弦波形。 用户可以访同三个用于控制

    2024年02月16日
    浏览(47)
  • JavaWeb课程设计项目实战(03)——开发准备工作

    本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 在正式进入项目开发之前请先完成以下准备工作。 请创建数据库和表并完成数据初始化工作。 请在MySQL数据库中创建名为studentinformationmanagement的库。 在本项目中有以下两张表: 1、用户表 2、学生表 用户表详情

    2024年02月15日
    浏览(41)
  • android开发实战经典,设计思想与代码质量优化+程序性能优化+开发效率优化

    一、关于Handler面试那些问题 1、Handler Looper Message 关系是什么? 2、Messagequeue 的数据结构是什么?为什么要用这个数 据结构? 3、如何在子线程中创建 Handler? 4、Handler post 方法原理? 5、Android 消息机制的原理及源码解析 6、Android Handler 消息机制 7、Android 消息机制 … 二、关于

    2024年03月11日
    浏览(105)
  • 软件开发的权限系统功能模块设计,分享主流的九种常见权限模型

    软件系统的权限控制几乎是非常常见且必备的,这篇文章整理下常见的九种模型,几乎基本够你用了,主流的权限模型主要有以下9种: 1、ACL模型 访问控制列表 2、DAC模型 自主访问控制 3、MAC模型 强制访问控制 4、ABAC模型 基于属性的访问控制,更灵活复杂 5、RBAC模型 基于角

    2024年02月09日
    浏览(40)
  • AUTOSAR CP标准的RTE和BSW各模块的设计及开发工作

    AUTOSAR(Automotive Open System Architecture) 是一种开放的汽车电子系统架构标准,旨在提供一种统一的软件架构,以实现汽车电子系统的模块化和可重用性。 AUTOSAR标准中的两个重要模块是RTE(Runtime Environment)和BSW(Basic Software)。 RTE(Runtime Environment) 模块的设计和开发工作主要

    2024年02月16日
    浏览(51)
  • FPGA实战开发-基于的ddr图像缓存设计(上)

    目录 概要 整体架构流程 技术名词解释 技术细节 ​编辑 小结 提示:这里可以添加技术概要 本文主要基于DDR的图像缓存设计。 提示:这里可以添加技术整体架构 先用图像产生模块产生一个1080P60Hz的测试图像,然后经过FDMA进入ddr3,缓存3帧后在读出来。然后在经过HDMI显示。

    2024年02月08日
    浏览(61)
  • 【unity项目实战】3DRPG游戏开发07——其他详细的设计

    参考原视频链接: 【视频】:https://space.bilibili.com/370283072 注意 :本文为学习笔记记录,推荐支持原作者,去看原视频自己手敲代码理解更加深入

    2024年02月05日
    浏览(41)
  • (后续更新)【微信小程序】毕业设计 租房小程序开发实战,零基础开发房屋租赁系统小程序

    大家好,我是子木。 以前没接触过小程序,刚好毕业设计选题选到了小程序,有前端基础,于是在提交完开题后开始自学小程序(云开发),属于边学边开发的那种。缝缝补补,最终耗时1个多月写完了我的课题。 这段时间刚写完论文比较闲,所以来记录一下自己的开发过程

    2024年02月11日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包