spring 注入父模块的service_Maven 分模块构建工程

1 需求

1.1 需求描述

将ssh工程拆分为多个模块开发:

dao

service

web

839806b3b4654d36251d45483d709f0f.png

1.2 理解继承和聚合

通常继承和聚合同时使用。

何为继承?

继承是为了消除重复,如果将dao、service、web分开创建独立的工程则每个工程的pom.xml文件中的内容存在重复,比如:设置编译版本、锁定spring的版本的等,可以将这些重复的配置提取出来在父工程的pom.xml中定义。

何为聚合?

项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在一起运行,比如:dao、service、web三个工程最终会打一个独立的war运行。

2 案例实现

2.1 maven-parent父模块

创建父工程

ab4360ca8835bb611291feb49ecc9fdc.png

这里选择"跳过骨架选择"

ecaa43d200a83f3735db233f70f0a6ba.png

定义坐标:

69b8c31c9db8052ed65db5ce98892c00.png

定义pom.xml

在父工程的pom.xml中抽取一些重复的配置的,比如:锁定jar包的版本、设置编译版本等。

4.0.0cn.itcast.mavenmaven-parent0.0.1-SNAPSHOTpom父工程4.2.4.RELEASE5.0.7.Final2.3.24org.springframeworkspring-context${spring.version}org.springframeworkspring-aspects${spring.version}org.springframeworkspring-orm${spring.version}org.springframeworkspring-test${spring.version}org.springframeworkspring-web${spring.version}org.hibernatehibernate-core${hibernate.version}org.apache.strutsstruts2-core${struts.version}org.apache.strutsstruts2-spring-plugin${struts.version}org.apache.strutsstruts2-json-plugin${struts.version}maven-weborg.apache.maven.pluginsmaven-compiler-plugin1.71.7UTF-8

将父工程发布至仓库

父工程创建完成执行maven-install将父工程发布到仓库方便子工程继承:

c1cb5502dff574ad65a390fab71d5c85.png

2. 2 maven-dao子模块

创建dao子模块

选择maven模块:

4dd2d227a2106d83044ff4d319728ed3.png

这里指定模块名称,选择"跳过骨架选择":

c237d71e5757cb65ac91f1e05212106d.png

定义pom.xml

dao模块的pom.xml文件中需要继承父模块,添加持久层需要的依赖坐标:

4.0.0cn.itcast.mavenmaven-parent0.0.1-SNAPSHOTmaven-daojarorg.hibernatehibernate-coreorg.springframeworkspring-contextorg.springframeworkspring-aspectsorg.springframeworkspring-ormorg.springframeworkspring-testorg.springframeworkspring-webmysqlmysql-connector-java5.1.6runtimec3p0c3p00.9.1.2org.slf4jslf4j-log4j121.7.2junitjunit4.9test

dao接口

将maven-web工程中的dao接口及domain类拷贝到src/main/java中:

38355b31639881ac7c538843e37c7ecb.png

配置文件

拷贝maven-web工程中如下配置文件到dao工程:

50661a4256421c1533348dad0c8d2d16.png

注意:

将applicationContext.xml拆分出一个applicationContext-dao.xml,此文件中只配置dao

applicationContext.xml的内容如下:

单元测试

@ContextConfiguration(locations = { "classpath:applicationContext.xml
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值