活动类型Java项目结构

前言:在活动类型的项目中,每新加一个活动,都会往项目中增加一些一次性(或多次)的代码,随着时间的推移,项目越来越臃肿,启动越来越慢,删除无用代码时也很麻烦。

方案:将每次的活动作为一个lib模块,加入到项目中,活动结束后,lib模块代码可以保留,只需删除pom文件中对相应活动lib模块的依赖,项目启动时就不会再加载相关的代码,提高效率。(模块指IDEA中的Module)

传统方案中,一个活动的代码,会分散到各个模块,比如数据表相关的Dao类在activity-dao模块,Service接口和ServiceImpl类在activity-service模块,Controller类在activity-webaap模块,不易于归纳管理。
传统项目module目录:
——activity
————activity-common
————activity-dao
————activity-facade
————activity-service
————activity-webapp

现在,每个活动相关的代码都写在一个模块中,比如“发放现金”活动,写在lib-2019-distribute-cash模块中。
当模块数量越来越多,为了方便管理,新建一个activity-lib模块,作为所有活动模块的父模块,它的pom文件包括了所有的活动模块。
修改后,项目module目录:
——activity
————activity-common
————activity-dao
————activity-facade
————activity-service
————activity-lib
————activity-webapp

其中,activity-lib下的目录结构如下:
————activity-lib
——————lib-2019-actest
——————lib-2019-distribute-cash
——————lib-2019-lucky-draw
——————lib-…
activity-lib的pom文件如下:

<?xml version="1.0"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.xxx.yyy</groupId>
		<artifactId>activity</artifactId>
		<version>1.0.0</version>
	</parent>
	<groupId>com.xxx.yyy.activity.lib</groupId>
	<artifactId>activity-lib</artifactId>
	<packaging>pom</packaging>

	<modules>
	    <module>lib-2019-actest</module>
		<module>lib-2019-distribute-cash</module>
        <module>lib-2019-lucky-draw</module>
	</modules>
</project>

每个活动模块的目录结构如下:
在这里插入图片描述

为了能让springboot的启动类扫描到活动lib,需要在activity-webapp模块的pom文件中,添加活动模块的依赖。由于activity-lib是活动模块的父模块,只相当于一个包装纸,所以应该加的是每个实际的活动模块:

<!--accore-lib-->
<dependency>
        <groupId>com.xxx.yyy.activity</groupId>
		<artifactId>lib-2019-actest</artifactId>
		<version>1.0.0</version>
</dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值