目录
左侧:我们从前的架构,一个人独立做的所有工作文件都在src目录下
右侧:以后我们的工程都会按照模块化开发,通过多模块的合作,来完成我们的项目
按照下面的图示进行操作,真的非常简单
注意这个地方的parent我们先设置一个None,这个地方我们后面会说
如果进到这个页面发现下面的包没有颜色,不要着急,点击OK即可,然后再进入这个页面就行了
注意看 我下面这个包就留了一个java包,其他全部删掉(键盘delete)
如下图所示,我们就可以在下面这个包里面写关于pojo的代码了,各种实体类
和上面一个样子,依然是创建一个新的模块,在这个模块完成对数据库的访问和操作
接下来我们就可以编写有关dao层的代码 ,如果有资源的需要的娿,可以再保存一个resources包
因为我们这是里dao层,一般会在pom文件中应该添加相应的坐标,用什么添加什么就好了
除此之外,我们这个地方还会爆红!
说明:因为我们的dao层一般会用到实体类,如若是下图,则还需要一个User实体类,但是User实体类并不在我们下面这个项目中,而是在ssm_pojo层
那这该怎么办呢?
找到ssm_pojo的pom文件,将红色箭头指向的三行全部复制
然后在ssm_dao中以资源的形式导入,非常的巧妙
但是!!!在上面这个操作之前,我们应该先 把ssm_pojo下载到仓库中,否则是访问不到的,因为maven是从仓库中找资源
其他的资源我们可以下载,但是ssm_pojo没有办法下载,因为这是我们自己写的(自定义),所以在仓库中找不到也下载不了,只能我们手动install到本地仓库
简洁的说:我们引入的依赖要保证仓库中有
此时对ssm_dao编译,如果能通过,便能使用
创建模块
这个地方的包想删除的可以删除一下
在此之前,我们应该把ssm_dao加载到我们的仓库当中(install,和上面一模一样)
导入其他模块的依赖(导入dao模块,不用导入pojo,在dao中已经导入了,这个地方要注意一下,直接依赖与间接依赖的问题)
创建maven的ssm_controller模块,在pom.xml文件中引用我们所需要的模块
在导入下面这个坐标之前,先将ssm_service下载到本地库
拆完之后由一个变成多个就会引发很多的问题
我们把下图的四个文件查分后都会放到我们的本地仓库中,此时就会出现问题
比如说,我们ssm_dao模块修改了,但是没有通知其他模块,这显然会造成其他模块的错误
为了避免这种错误,所以我们希望下面的四个项目能够同时进行,我们将所有的功能模块都交给一个大的模块管理,完成所谓的聚合
比如,这个大模块安装,下面的四个也跟着安装,大模块编译,下面的四个也跟着编译
这个模块不是为了完成具体的功能用的,仅仅是为了完成管理用的
只留下一个pom.xml文件即可
注意:参与聚合操作模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关
如果不写打包方式,就默认打包成jar包的方式
jar
<packaging>pompackaging> //专门用来做聚合工程用的
controller层是一个war包,ssm层是一个pom包,其他的默认就可
就我实习的经历而言,公司大多数项目是这种继承的形式的,聚合的还是比较少的。
也或许有其他的,但是我看不懂那个结构。
模块拆分之后,每个模块都会用到一定的依赖,但是对于同一个依赖有不同的版本,不同的版本可能会存在不兼容的问题,所以我们希望一个模块出来统一管理我们的依赖版本,避免同一个依赖但是版本不兼容的问题
作用:子工程沿用父工程中的配置
下面
里面的内容是我们在上面做聚合工程中遗留下来的,我们为了方便,聚合和继承都在同一个项目中演示,学习时一定不要混了
将所有的依赖都放到ssm的pom.xml文件夹下
在其他模块中定义该工程的父工程(改造所有的子模块)
如果ssm配置文件中有有关插件的配置,可采取下面这种方式
父工程管理,子工程统一引用,子工程引用的时候,将所有的版本号删除,听从父工程的
以后整体改造的时候,直接在父工程中换版本就可以,简单方便效率高
下图中没有version标签
在实际开发中,我们一般是下图所示:
父工程
子工程,其一定要指定对应的父工程
做继承和做聚合是完全可以做到两个工程里面去的,上面的例子只是演示
聚合是在父工程pom文件操作引入子工程
继承是在子工程pom文件操作引入父工程
聚合用于快速构建项目
继承用于快速配置
聚合和继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件
聚合与继承均属于设计型模块,并无实际模块的内容
聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己