分模块开发与设计
工厂模块与模块划分
一个包拆成一个工程
ssm_pojo拆分
1.新建模块
在同级目录下建立模块
new module-->maven -->组名com.itheima
名称--ssm_pojo-->放置在同级别目录下
2.拷贝原始项目中对应的相关内容(实体类)到ssm_pojo中
domain包全表拷贝
3.配置文件 不做修改
# 由于实体类的API全是idea自带,故不去修改配置
4.compile:编译
测试编译是否通过
- 添加到本地仓库 的操作install
ssm_dao拆分
1.新建模块
在同级目录下建立模块
new module-->maven -->组名com.itheima
名称--ssm_dao-->放置在同级别目录下
2.拷贝原始项目中对应的相关内容到ssm_dao中
* 数据层接口
* 配置文件:保留与数据层相关配置文件3个
* 注意:分页插件在配置中与SqlSessionFactoryBear绑定,需要保留
3.配置文件pom.xml 引入数据层相关坐标即可,删除springmvc相关坐标
*spring
*mybatis
*spring整合mybatis
*mysql
*druid
*pagehelper
*导入资源文件=>直接依赖ssm_pojo,需要对ssm_pojo模块执行install指令,将其安装到本地仓库
4.compile:编译
(编译要保证仓库有对应的资源)
测试编译是否通过(需要先对ssm_pojo模块执行install指令),否则仓库里找不到
- 当我们编译模块时,必须保证仓库有对应的资源
ssm_service拆分
1.新建模块
在同级目录下建立模块
new module-->maven -->组名com.itheima
名称--ssm_service-->放置在同级别目录下
2.拷贝原始项目中对应的相关内容到ssm_service中
业务层接口与实现类(xxxService和xxxServiceImpl)
保留与数据层相关配置
3.配置文件 pom.xml 引入数据层相关坐标即可,删除springmvc相关坐标
*spring
*junit
*spring整合junit
*直接依赖ssm_dao(对ssm_dao模块执行install指令,将其安装到本地仓库,在导入依赖)
*间接依赖ssm_pojo(由ssm_dao模块负责依赖关系建立)
4.compile:编译
测试编译是否通过
5.其他
1.修改service模块的spring核心配置文件名,添加模块名称,格式:applicationContext-service.xml
2.修改dao模块的spring核心配置文件名,添加模块名称,格式:applicationContext-dao.xml
3.修改单元测试引入的配置文件名,由单个文件修改为多个文件
ssm_control拆分
1.新建模块
在同级目录下建立模块
new module-->maven (由于是表现层需要选择模板webapp) -->组名com.itheima
名称--ssm_control-->放置在同级别目录下
2.拷贝原始项目中对应的相关内容到ssm_control中
表现层控制器类与相关设置类(controller和异常相关)
配置文件:保留与表现层相关的配置文件,服务器相关配置文件
3.配置文件 pom.xml 引入数据层相关坐标即可,删除springmvc相关坐标
*spring
*springmvc
*jackson
*servlet
*tomcat服务器插件
*直接依赖ssm_service(对ssm_service模块执行install指令,将其安装到本地仓库,在导入依赖)
*间接依赖ssm_pojo和ssm_pojo
4.compile:编译
测试编译是否通过
修改web.xml配置文件中加载spring环境的配置文件名称.使用*通配,加载所有的applicationContext-开始的配置文件
小结
1.模块中仅包含当前模块对应的功能类与配置
2.spring核心配置根据模块功能不同进行独立制作
3.当前模块所依赖的模块通过导入坐标的形式加入当前模块后才可以使用
4.web.xml需加载所有的spring核心配置文件
聚合
聚合
多模块构建维护
多模块构建维护
多个模块全部 install到了本地仓库
其中一个更新或损坏,会导致其他与他依赖的功能无法运行
解决方法:
定义一个工程进行统一维护管理,
功能:对管理范围内的模块,进行统一操作
执行顺序
<packaging>war</packaging>
默认打包为jar文件,声明为war,则打包为war文件
聚合
作用:聚合用于快速构建内maven工程,一次性构建多个项目/模块
实现
<!--创建一个空模块,打包类型定义为pom -->
<!--定义该工程用于构建管理 -->
<packaging>pom</packaging>
<!--定义当前模块进行构建操作时关联的其他模块名称 -->
<!--管理工程列表 -->
<modules>
<!--具体的工程名称 -->
<module>../ssm_controller</module>
<module>../ssm_service</module>
<module>../ssm_dao</module>
<module>../ssm_pojo</module>
</modules>
注意事项:参与聚合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关
小结
作用:方便进行批量的项目打包等操作
注意事项:参与聚合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关
(线性依赖)
同级别的则与配置顺序有关(即非线性依赖)
packaging 默认是jar形式(所有的资源文件都是以jar包形式呈现的)
pom是专门做聚合工程的
war是web工程
继承
继承
起因:各个模块所依赖的配置文件未必同步与兼容
模块依赖关系维护
统一管理子项目的资源
继承
作用:通过继承可以实现在子过程中沿用父类中的配置
* maven中的继承与java中的继承相似,在子过程中配置继承关系
实现
- 在每一个子工程中声明其父工程坐标与对应的位置
<!--定义该工程的父工程 -->
<parent