构建Maven多模块项目+SSM框架整合(一)

本文介绍了如何使用Maven进行多模块项目构建,并通过实例展示了SSM框架的整合。讨论了模块化开发的优势,如降低耦合、便于维护。文章详细讲解了从创建Maven父项目到子模块的建立过程,包括配置pom.xml文件,整合Spring、SpringMVC和Mybatis,以及设置web.xml和相关配置文件,最终实现了一个简单功能的模块化SSM项目。
摘要由CSDN通过智能技术生成
  1. Maven

Apache Maven is a software project management and comprehension tool.
Based on the concept of a project object model (POM), Maven can manage
a project’s build, reporting and documentation from a central piece of
information.

Maven就是一个不需要手动导入依赖、项目打包和项目构建的工具
Maven中重要的两个关键词:继承和聚合
继承:作用就是避免配置重复,对于子项目来说应该关心父项目是怎么样配置的。
聚合:字面理解就是“聚在一起合作完成工作”,就是将子模块聚集起来完成相应的项目需求

  1. 为什么要进行模块化开发?

在多人使用Maven协作开发项目时,尤其是稍微上点规模的项目,每个RD的工作都细分到具体功能和模块,有些模块甚至还要单独部署。

我们假设有这样一个商城项目,包括以下几个模块:

商城前台(shop)
管理后台(admin)
数据库交互模块(dao)
通用业务模块(service)
接口模块(api)
通用工具(util)
其中shop和admin需要单独部署,dao、service、util你可能想要一些经验丰富的人来维护,如果使用一个应用来管理的话,所有的功能和模块都会耦合在一起,所有人都可以随意修改代码,这显然不是我们所期望的。

而且使用一个应用来管理的话,任何一个点的代码有变更,整个项目就需要重新build,使用模块化开发的另一个好处是如果dao的代码被修改,只需要重新build dao模块就可以了。web模块可以build成war,dao、service、util等可以build成jar,只需要配置好依赖关系,就可以实现模块间的解耦合。这样的设计才是遵循“高内聚,低耦合”设计原则的。
我们使用上面的例子进行演示,先进行合理的优化,我们希望dao和service作为通用的底层工具来使用,把它们合并成一个核心模块(core),build成core.jar,简单的Maven模块化项目结构如下:

———- mall //顶级项目
|—— pom.xml //packaging = pom
|—— mall-util //通用工具
| |— pom.xml //packaging = jar
|—— mall-core //核心模块
| |— pom.xml //packaging = jar
|—— mall-web-api //接口模块
| |— pom.xml //packaging = war
|—— mall-web-admin//管理后台
| |— pom.xml //packaging = war
|—— mall-web-shop//商城前台
| |— pom.xml //packaging = war
这些模块中api、admin、shop均是可以单独部署的web应用,相互之间没有依赖关系,但都依赖于core模块,而core模块依赖于util模块。接下来我们按照上述确定的结构来搭建项目结构。

  1. 创建项目
    使用开发工具STS,其他工具也大同小异
    (1) new -> Maven project 选择项目放置的地点 和勾选 create a simple project ,命名study
    这里写图片描述
    注意:父项目要使用 pom 方式进行packaging, 有三种 默认是 jar ,还有一种是web项目的war
    这里写图片描述

    (2)父项目建立好之后,开始建立子模块 new 一个 Maven module
    这里写图片描述
    命名为study-dao,parent为 study
    这里写图片描述
    选择quickstart
    这里写图片描述
    groupID 要和父项目一致,点击finish
    这里写图片描述
    查看一下study-dao的pom.xml
    这里写图片描述
    查看一下study的pom.xml
    这里写图片描述

    (3)同上一样的方式建立 study-service
    只是注意 study-service 模块需要引入 study-dao,在study-service模块的pom.xml 文件中加上
    spring-context也需要用到,先加上

<dependencies>
        <dependency>
            <groupId>com.study</groupId>
            <artifactId>study-dao</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.12.RELEASE</version>
        </dependency>

    </dependencies>

(4)建立 study-web 模块同上有一点不同,就是他是webapp ,需要打包成war
这里写图片描述
刚建立的时候会有报错,不要紧,加上 run server就可以
这里写图片描述
这里写图片描述

看一眼整个项目的目录结构,整体架子搭建起来了
这里写图片描述

study-web的pom.xml 添加依赖, 整合SSM框架

<?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.study</groupId>
        <artifactId>study</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <groupId>com.study</groupId>
    <artifactId>study-web</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>study-web Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <properties>
        <spring.version>4.3.12.RELEASE</spring.version>
        <servlet.version>3.1.0</servlet.version>
        <commons-codec>1.10</commons-codec>
        <mybatis.version>3.4.4</mybatis.version>
        <mybatis-spring>1.3.0</mybatis-spring>
        <c3p0>0.9.5.2</c3p0>
        <commons-logging>1.1</commons-logging>
        <mysql-connector-java>5.1.41</mysql-connector-java>
        <mybatis-generator-core>1.3.2</mybatis-generator-core>
        <pagehelper>5.0.0</pagehelper>
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值