Maven分模块开发

本文详细介绍了Maven分模块开发的原因、方法和实践,包括代码和配置文件的拆分,以及项目结构的搭建。重点讲解了如何将项目划分为基本工具类、公共内容、具体项目公共内容、Mapper、Service和Web控制器等多个独立模块,以实现低耦合和高内聚。同时,文章还涉及了RESTful接口的实现和Swagger的使用,以方便接口文档的生成及测试。
摘要由CSDN通过智能技术生成

1.为什么分模块开发

​ (1)随着业务的增加, mapper 或者 service类 越来越多 ,项目越来越庞大,项目有点臃肿 -->拆分多个模块
​ (2)项目代码越来越多, 构建 或者编译, 变得很慢很慢 -->拆分
​ (3)有些内容,公共的内容 ,有很多项目都可能使用,有必要-- 抽取到公共maven模块
​ (4)有些内容, 不想让每个人都可以修改 – 抽取到公共的maven模块 util
(5)随着项目业务需求的怎么 ,pom.xml的内容也会变得很长
一般中大型项目 都在使用分模块开发

2.怎么分模块开发

(1)开闭原则
​ 对扩展开放
​ 对修改关闭 – 公共的不要乱修改
(2)低耦合: 尽量的分层开发 service mapper controller --为了维护
高内聚: 比如一个方法 (方法就应该完成一个方法该干的事情 save )

3.拆分

(1)代码拆分

​ basic-util 工具类

​ basic-core 公共内容

​ crm-common 具体项目公共内容

​ crm-mapper 项目里面具体mapper

​ crm-service 项目里面service类

​ crm-web 项目的controller层

(2)配置文件拆分

​ web.xml applicationContext-mvc.xml -->crm-web模块

​ applicationContext.xml–crm-service模块

​ web.xml applicationContext-mvc.xml -->crm-web模块

​ applicationContext.xml–crm-service模块

3.项目搭建

crm_parent(普通Maven项目)
basic-util 工具类(普通Maven项目)
basic-core 公共内容(普通Maven项目)
crm-common 具体项目公共内容(普通Maven项目)
crm-mapper 项目里面具体mapper(普通Maven项目)
crm-service 项目里面service类(普通Maven项目)
crm-web 项目的controller层(Maven web项目)

在这里插入图片描述

4.项目结构

crm_parent pom.xml
 <modules>
        <module>basic_core</module>
        <module>basic_util</module>
        <module>crm_common</module>
        <module>crm_mapper</module>
        <module>crm_service</module>
        <module>crm_web</module>
    </modules>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <!-- spring版本号 -->
        <spring.version>4.1.2.RELEASE</spring.version>
        <!-- mybatis版本号 -->
        <mybatis.version>3.2.1</mybatis.version>
        <!-- log4j日志文件管理包版本 -->
        <slf4j.version>1.7.2</slf4j.version>
        <log4j.version>1.2.17</log4j.version>
        <!-- jackson包版本 -->
        <jackson.version>2.5.0</jackson.version>
        <!--swagger版本-->
        <springfox.version>2.4.0</springfox.version>
    </properties>

    <dependencies>
        <!--Spring核心-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>

        <!--aop依赖包-->
        <dependency>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.6.8</version>
        </dependency>
    </dependencies>

basic-core

在这里插入图片描述

basic-core pom.xml
<dependencies>
		<!--引入basic_util-->
        <dependency>
            <groupId>cn.itsource</groupId>
            <artifactId>basic_util</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!--目的是可以在base中使用@autowired @Transactional注解-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
       
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值