Java 6-3 项目模块化-实操

本文介绍了如何进行项目模块化,包括版本号抽取、模块拆分以及代码迁移。在版本号抽取中,将关键依赖版本设置为常量。模块拆分涉及创建多个模块,如主入口、公共库、业务模块等。代码迁移步骤详细,需要注意配置更新,如SpringBootApplication扫描路径、日志打印路径和Mybatis的mapper配置。此外,文章还强调了子模块间的依赖关系以及在拆分后代码生成插件的配置问题。
摘要由CSDN通过智能技术生成

6-3 项目模块化-实操

一、项目模块化-pom版本号抽取

抽取版本号作为常量值,后续使用直接依赖,部分在spring-boot里已经包含的版本配置可以直接删除

项目配置
<properties>
    <!--项目部署编码的文件编码格式-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
    <!--项目对外输出的编码格式-->
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    
    <!--Java源码版本号-->
    <maven.compiler.source>8</maven.compiler.source>
    
    <!--Java目标版本号-->
    <maven.compiler.target>8</maven.compiler.target>
    
    <!--Java SDK版本号-->
    <java.version>1.8</java.version>
</properties>
常规依赖
<properties>
	<!--spring-boot-->
	<spring-boot.version>2.5.1</spring-boot.version>

    <!--lombok-->
    <lombok.version>1.18.20</lombok.version>

    <!--knife4j-->
    <knife4j.version>2.0.8</knife4j.version>

    <!--mybatis-->
    <mybatis.version>2.2.0</mybatis.version>
    <mybatis-plugin.version>1.4.0</mybatis-plugin.version>

    <!--国人工具库-->
    <hutool.version>5.7.7</hutool.version>

    <!--swagger-->
    <swagger.version>2.10.5</swagger.version>

    <!--fastjson-->
    <fastjson.version>1.2.75</fastjson.version>

    <!--aspectj-->
    <aspectjrt.version>1.9.6</aspectjrt.version>
    <aspectjweaver.version>1.9.6</aspectjweaver.version>
</properties>

二、项目模块化-module拆分

新建module:

1. main       主入口,集成化
2. common     公共基础库
3. beans      公共JavaBean
4. utils      工具类
5. exception  异常处理类
6. sys-user   系统用户角色
7. app-user   普通用户角色
8. web-car    基础业务,向上层提供服务
9. app-car    在web-car的基础上,向移动端提供服务

步骤:
File -> new -> Module -> Java-Maven

选择 Parent,填写 Name,Artifact Coordinates下填写(GroupId、ArtifactId、Version


三、项目模块化-代码迁移

新建子模块完成后,需要将项目里原有的代码迁移到对应模块下

迁移步骤概要
  1. logymlgenerator的配置文件给每个业务module复制一份,并修改里面重要目录
  2. exception的迁移
  3. beans迁移,包括entry和常量类
  4. 业务代码迁移(controller、service及impl、mapper及mapper.xml
  5. 迁移pom里基础依赖至common下,mybatis-plugin自动生成代码的插件需要每个业务module单独配置
  6. 添加各module之间需要的依赖(依赖关系在下面有说明)
  7. 检查
  8. 配置启动项Application

此步骤需额外注意:

  1. mapper-locations 数据库sql映射路径修改,type-aliases-package 实体类映射路径修改

    # mybatis配置
    mybatis:
      # 数据库映射
      mapper-locations: classpath*:mapper/*.xml # main入口需要扫描所有module下,所以classpath后需要加*
      type-aliases-package: com.a2j.beans
    
  2. main入口SpringBootApplication 扫描路径增加

    // 主入口需要加全部包的扫描路径,包括yml内的type-aliases-package路径配置
    // 其他业务module的Application中,也要加上对应组件库的扫描
    @SpringBootApplication(scanBasePackages = "com.a2j.*") 
    public class MainApplication {
        ...
    }
    
  3. logging日志打印包名路径修改,main入口配置*

    main入口配置

    # logger 日志打印与备份
    logging:
      level:
      com.a2j.*: debug
    

    如果是其他module

    # logger 日志打印与备份
    logging:
     level:
     com.a2j.app.user.mapper.*: debug
    
  4. mybatis-plugin自动生成代码配置修改(generatorConfig.xml文件内

  5. 拆分子模块后,使用自动生成代码插件时需要注释掉yml内其他module的依赖(插件缺陷,Mybatis-Plus已解决)

子module之间的依赖关系
  • main 集成入口,包含所有子module
  • 工具库 common -> beans -> utils 依赖beans方便业务对象转换
  • 异常库 common -> beans -> exception 依赖beans方便业务异常对象转换
  • 业务库 utils + exception -> web-car -> app-car
  • 用户库 utils + exception -> app-user/sys-user
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯基爱蹦跶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值