Maven聚合SSM项目(八)

古语有云: 万恶淫为首,百善孝为先。 我们后辈当自勉。
上一章简单介绍了 Maven整合SSM项目(七),如果没有看过,请观看上一章

一. 聚合项目

在传统的项目中,通常采用MVC的设计思想, 将项目分成 pojo, dao,service,action,utils 等 包进行开发,pojo包放置实体类,dao放置数据库,service层处理业务,action进行控制,utils是使用的工具类, 项目很小时是可以的, 当项目过大时,这样就很不好操作了。 Maven 可以将其进行分开, 将pojo 层处理成一个模块,将dao 处理成一个 模块, 将 service层处理成一个模块,将action 处理成一个模块,将utils 处理成一个依赖, 各个 模块之间可以 自顶而下形式依赖, 就是一个父项目里面包含若干个子项目, 在运行的时候,只需要运行父项目即可。 这叫做聚合,父与子之间的聚合。 在父项目里面添加相应的依赖, 子项目因为继承于父项目,所以包含了相应的依赖, 各个 子项目就不需要单独添加依赖了, 但子项目之间的依赖还是要添加的。

我们在创建Maven 项目的时候, 有一个 Maven Module ,

有图片

在选择 packaging 时,有一个 pom 类型

有图片

这在 聚合项目中就可以用得到了。

二. 创建 SSM 类型的聚合项目

二.一 模块目录结构

目录结构是这样的

有图片

有一个父的项目, 名称叫 SSMParent, 里面包含一个工具模块 CommonUtils 还有一个正式的项目 SSMOA, 在SSMOA里面包含 SSMPojo,SSMDao,SSMService,SSMWeb 等模块。 其中,SSMDao依赖于 SSMPojo, SSMService依赖于 SSMDao, SSMWeb依赖于SSMService.

例子,仍然采用上一章节的例子。

二.二 创建SSMParent 父模块

文件—>新建----其他–>选择 Maven Project

有图片

点击下一步, 工作空间为eclipse的工作空间

有图片

点击完成后, 填写相应的信息, 注意 packaging 选择的是 pom 类型。

有图片

点击确定,则 SSMParent 模块创建完成。

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>
  <groupId>com.yjl</groupId>
  <artifactId>SSMParent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
</project>

二.三 创建 CommonUtils 子模块

选中 SSMParent 项目, 进行新建—>其他—>选择 Maven Module

有图片

下一步, 填写 Module Name的值 为 CommonUtils ,

有图片

点击完成 ,

有图片

工具类嘛,都是 jar 类型。 父模块会被自动选择

CommonUtils 模块创建完成 。

这个时候,再观察 SSMParent 模块的 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>
  <groupId>com.yjl</groupId>
  <artifactId>SSMParent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <modules>
	<!--多了一行-->
  	<module>CommonUtils</module>
  </modules>
</project>

观察 SSMParent 项目目录, 发现已经把 CommonUtils 项目包含了进去。
在这里插入图片描述

二.四 创建 SSMOA 子模块

选中 SSMParent 项目, 进行新建—>其他—>选择 Maven Module

有图片

下一步, 填写 Module Name 的值为 SSMOA

有图片

点击完成

因为 SSMOA 下面,还有 pojo 等模块, 所以 packaging 的类型为 pom 类型。

有图片

创建 SSMOA 模块完成。

这个时候,再观察 SSMParent 的pom.xml 文件, 添加了一个 module 为SSMOA的模块。

<modules>
  	<module>CommonUtils</module>
  	<module>SSMOA</module>
  </modules>

SSMParent 的目录结构也添加了 SSMOA

有图片

二.五 创建SSMPojo 子模块

选中SSMOA, 注意是OA, 进行新建—>其他—>选择Maven Module
有图片

下一步, 填写Module Name 的值为 SSMPojo

有图片

点击完成, 选择packaging 为jar类型

有图片

SSMPojo 子模块完成 。

这个时候,观察 SSMOA的pom.xml 文件,发现多了一个 Module

<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.yjl</groupId>
    <artifactId>SSMParent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>SSMOA</artifactId>
  <packaging>pom</packaging>
  <modules>
  	<module>SSMPojo</module>
  </modules>
</project>

观察 SSMParent 的目录结构,

有图片

二.六 创建 SSMDao 子模块

选中SSMOA, 注意还是OA, 进行新建—>其他—>选择 Maven Module—>填写 Module Name 为SSMDao

有图片

packaging 仍然 是 jar 类型

有图片

SSMDao 子模块创建完成 。

观察 SSMOA的 pom.xml 文件,发现多了一个 SSMDao

<modules>
  	<module>SSMPojo</module>
  	<module>SSMDao</module>
  </modules>

观察 SSMParent 的目录,

有图片

二.七 创建SSMService 子模块

选中SSMOA, 注意还是OA, 进行新建—>其他—>选择 Maven Module—>填写 Module Name 为SSMService

有图片

packaging 仍然是 jar 类型

有图片

SSMService 子模块创建完成 。

观察 SSMOA的 pom.xml 文件,发现多了一个 SSMService

<modules>
  	<module>SSMPojo</module>
  	<module>SSMDao</module>
	<module>SSMService</module>
  </modules>

观察 SSMParent 的目录,

有图片

二.八 创建 SSMWeb 子模块

选中SSMOA, 注意还是OA, 进行新建—>其他—>选择 Maven Module—>填写 Module Name 为SSMWeb

有图片

注意,这个时候 web了, packaging的类型就是 war了。

有图片

SSMWeb 子模块创建完成。

选中 SSMWeb 项目, 右键 Java EE Tools——>Generate Deployment Descriptor Stub, 系统便会自动创建 web.xml 文件了。

观察 SSMOA的 pom.xml 文件,发现多了一个 SSMWeb

<modules>
  	<module>SSMPojo</module>
  	<module>SSMDao</module>
  	<module>SSMService</module>
  	<module>SSMWeb</module>
  </modules>

观察 SSMParent 的目录,

有图片。

二.九 给 SSMParent 模块添加依赖和插件信息

选中 SSMParent, 在 pom.xml 中添加相应的依赖信息和插件信息。

依赖与上一章节的依赖一致,插入信息和resources 也与上一章节的一致。

这里就不重复添加了。

二.十 给 CommounUtils 添加工具包

选中 CommounUtils ,可以在里面添加各种 工具包,我们写的, 就是以前放置在 utils包下面的内容。

这里没有相应的工具类,不填写内容。

二.十一 给 SSMPojo 添加相应的代码

选中SSMPojo, 将上一章节的 User.java 和 UserExample.java 放置到这里面, 就是以前放置在 pojo包下面的内容。

在这里插入图片描述

观察 SSMParent项目, 发现在里面也会自动同步相应的代码信息。

有图片

二.十二 给 SSMDao 添加相应的代码

选中 SSMDao, 将上一章节的 UserMapper.java 和UserMapper.xml 放置到这里面来, 就是以前放置在 mapper包下面的内容。

有图片

User.java 类没有识别,需要在 SSMDao里面添加 SSMPojo的依赖。

找到 pom.xml ,添加相应的依赖

有图片

保存之后, SSMDao的错误便没有了,说明 dao项目引用 pojo项目 成功。

二.十三 给 SSMService 添加相应的代码

选中 SSMService, 将上一章节的 UserService.java 和UserServiceImpl.xml 放置到这里面来, 就是以前放置在service和 service.impl 包下面的内容。

有图片

UserService 类没有识别,需要在 SSMService里面添加 SSMDao的依赖。

找到 pom.xml ,添加相应的依赖

有图片

保存之后, SSMService的错误便没有了,说明 service项目引用 dao项目 成功。

二.十四 给SSMWeb 添加相应的代码

选中 SSMWeb ,将上一章节的 UserAction 放置到这里面来,就是以前放置在 action包下面的内容。

有图片

需要添加 SSMService的依赖
有图片
在这里插入图片描述

同时,还需要把上一章节的配置文件也放置该SSMWeb项目下的 src/main/resources 下面。

有图片

还有webapp 下面的内容也要放置进来

有图片

二.十五 测试运行

选中 SSMParent 项目, 右键 运行方式 —>Maven Build , 输入命令 : clean tomcat7:run

有图片

控制台没有报错。

输入网址: http://localhost:8026/ssm/user/toLogin

页面显示:

有图片

点击各个按钮,效果与上一章节是一样的,这儿就不继续贴图了。

说明,聚合成功。

二.十六 SSMParent 项目中的 pom.xml 文件 版本控制

在SSMParent项目中, pom.xml 中众多的依赖, 包括 包含 Spring的依赖, MyBatis的依赖 当修改版本号时,由 5.2.4.Final 变成其他的,如 5.2.5.Final 的时候,需要全部改变。 可以定义成一个变量,只需要修改那个变量的值即可。

在 pom.xml 中,在依赖之前 使用 <properties > 标签进行控制。

<properties>
 	 <springframework.version>4.2.4.RELEASE</springframework.version>
 	 <mybatis.version>3.5.1</mybatis.version>
 </properties>

在下面的 依赖标签里面, 就可以用 springframework.version 来代替相应的版本号了。

以前是:

<!-- spring web依赖 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>4.2.4.RELEASE</version>
		</dependency>
		<!-- spring-aspects依赖 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>4.2.4.RELEASE</version>
		</dependency>

现在就变成了

<!-- spring web依赖 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${springframework.version}</version>
		</dependency>
		<!-- spring-aspects依赖 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>${springframework.version}</version>
		</dependency>

MyBatis 也是这样的效果。

以前是:

<!-- mybatis的依赖 -->
		
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.1</version>
		</dependency>

现在是:

<!-- mybatis的依赖 -->
		
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>${mybatis.version}</version>
		</dependency>

最好将所有的常用的框架的版本号 都定义成一个变量,这样会很方便维护的。

MySQL的驱动, junit, 日志 log4j 都可以将版本号定义成相应的变量。

谢谢!!!

OA办公系统的九大设计原则: 1.整体性 系统整体设计能有效的实现后台一体化管理,前端满足用户个性化需求,系统标准化程度高。 2.先进性 软件采用的技术,将在相当长的时间内保证技术的发展能力,应具有良好便捷的升级能力,选用的硬件设备及操作系统、数据库产品、应用软件均具有先进性及成熟的技术与产品。 3.规范性 遵循统一的国家规范公文格式和交换接口标准。 4.高效性 系统提供对各类事务处理的高效性。使对大容量数据的查询和更新等操作也在较短的时间内迅速完成。对于大数据量的处理,也能高效地完成。 5.安全可靠性 采用最成熟和应用最广泛的技术平台,支持身份认证技术、安全加密技术;数据在传输过程和数据库中采用高加密技术,保证数据的安全性。分不同的角色控制信息数据,采用横向和纵向结合的矩阵权限控制模式,保证企业的各种信息安全。 6.扩展性 由于计算机和网络等领域技术发展十分迅速,应用环境,系统硬件及系统软件都会不可避免将被更新,系统的可扩充性及版本的兼容性,直接影响着应用系统和用户需求的发展和功能的提升。因此,OA系统十分重视扩展性,能很容易地适应调整,扩充和删减;另一方面,它还具有与其它系统的接口能力,利用各系统功能之长,进行优势互补。 7.适应性和灵活性 在日常工作中,不可避免地需要进行机构及人员的调整,OA系统能提供充分的变更与扩展能力,适用机构及人员的调整。OA系统还具有图形化工作流定义工具,系统管理员可在浏览器环境下任意调整或定义工作流程。系统具有灵活的信息发布系统,用户可根据需要定制发布需要的新闻、通知。 8.易用性 系统的设计尤其重视用户界面的友好性。简洁大方、功能齐备、美观实用、提示准确。 9.健壮性 OA办公系统的开发设计应该支持应用和数据库等多重负载均衡能力,支持附件服务器和数据库服务器分离技术,从而支持数万用户同时在线和同时操作的能力,不会因为用户数的增长或者信息量的增长,而导致系统响应能力下降。 如何分辨OA办公系统的优劣?设计原则是一个重要的评判标准。优秀的设计原则能让OA办公系统脱颖而出,实现系统整体的高性能、高可用、可扩展,发挥出更强的协同办公能力。而OA办公系统设计的九大原则,基本上包括了OA办公系统的性能指标,给项目开发和用户选型提供了有益的借鉴,对于中国OA办公系统的整体水平也能起到提升作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

两个蝴蝶飞

你的鼓励,是老蝴蝶更努力写作的

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

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

打赏作者

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

抵扣说明:

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

余额充值