IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Maven高级 -> 正文阅读

[Java知识库]Maven高级

分模块开发设计

工程模块与模块划分

在这里插入图片描述

ssm_pojo拆分

新建模块
拷贝原始项目中对应的相关内容到ssm_pojo模块中
实体类(User)
配置文件(无)

ssm_dao拆分

新建模块
拷贝原始项目中对应的相关内容到ssm_dao模块中
数据层接口(UserDao)
配置文件:保留与数据层相关配置文件(3个)
注意:分页插件在配置中与SqlSessionFactoryBean绑定,需要保留pom.xml:引入数据层相关坐标即可,删除springmvc相关坐标
spring
mybatis
spring整合mybatis
mysql
druid
pagehelper
直接依赖ssm_pojo (对ssm_pojo模块执行install指令,将其安装到本地仓库)

ssm_service拆分

新建模块
拷贝原始项目中对应的相关内容到ssm_service模块中
业务层接口与实现类(UserService.UserServicelmpl
配置文件:保留与数据层相关配置文件(1个)
pom.xml:引入数据层相关坐标即可,删除springmvc相关坐标
spring
junit
spring整合junit
直接依赖ssm_dao (对ssm_dao模块执行install指令,将其安装到本地仓库)
间接依赖ssm_pojo (由ssm_dao模块负责依赖关系的建立)
修改service模块spring核心配置文件名,添加模块名称,格式: applicationContext-service.xml
修改dao模块spring核心配置文件名,添加模块名称,格式: applicationContext-dao.xml
修改单元测试引入的配置文件名称,由单个文件修改为多个文件

ssm_control拆分

新建模块《(使用webapp模板)
拷贝原始项目中对应的相关内容到ssm_controller模块中
表现层控制器类与相关设置类(UserController、异常相关……)
配置文件:保留与表现层相关配置文件(1个)、服务器相关配置文件(1个)
pom.xml: 引入数据层相关坐标即可,删除springmvc相关坐标
spring
springmvc
jackson
servlet
tomcat服务器插件
直接依赖ssm_service (对ssm_service模块执行install指令,将其安装到本地仓库)
间接依赖ssm_dao.ssm_pojo
修改web.xml配置文件中加载spring环境的配置文件名称,使用*通配,加载所有applicationContext-开始的配置文件

分模块开发总结

1、模块中仅包含当前模块对应的功能类与配置文件
2、spring核心配置根据模块功能不同进行独立制作
3、当前模块所依赖的模块通过导入坐标的形式加入当前模块后才可以使用
4、web.xml需要加载所有的spring核心配置文件

聚合

多模块构建维护

在这里插入图片描述
作用:聚合用于快速构建maven工程,一次性构建多个项目/模块。
制作方式:
创建一个空模块,打包类型定义为pom

<packaging>pom</packaging>

定义当前模块进行构建操作时关联的其他模块名称

<modules>
		<module>. ./ ssm_controller</ module>
		<module>. ./ ssm_service</ module>
		<module>..i ssm_dao</module>
		<module>. ./ ssm_pojo</ module>
</ modules>

注意事项:参与聚合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关

继承

模块依赖关系维护

在这里插入图片描述

作用:

通过继承可以实现在子工程中沿用父工程中的配置
maven中的继承与java中的继承相似,在子工程中配置继承关系

制作方式:

在子工程中声明其父工程坐标与对应的位置
<!--定义该工程的父工程-->
<parent>
		<grouprd>com.itheima</groupId>
		<artifactId>ssm</artifactId>
		<version>1.0-SNAPSHOT</version>
		<!--填写父工程的pom文件-->
		<relativePath> . ./ ssm/ pom.xml</ relativePath>
</parent>
继承依赖定义

在父工程中定义依赖管理

<! --声明此处进行依赖管理-->
<dependencyManagement>
	<!--具体的依赖-->
	<dependencies>
		<!--spring环境-->
		<dependency>
			<groupId>org.springframework</grouprd>
			<artifactId>spring-context</ artifactId>
			<version>5.1.9.RELEASE</ version>
		</ dependeney>
	<dependencies>
<dependeneyManagement>
继承依赖使用

在子工程中定义依赖关系,无需声明依赖版本,版本参照父工程中依赖的版本

<dependencies>
		<! --spring环境-->
		<dependency>
				<groupId>org.springframework</ groupId>
				<artifactId>spring-context</ artifactId>
		</ dependency>
</ dependencies>

继承的资源

在这里插入图片描述

继承与聚合

作用

聚合用于快速构建项目
继承用于快速配置

相同点:

聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
聚合与继承均属于设计型模块,并无实际的模块内容

不同点:

聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己

属性

版本统一的重要性

在这里插入图片描述

属性类别

1.自定义属性2.内置属性3. Setting属性4.Java系统属性5.环境变量属性

属性类别:自定义属性

作用
等同于定义变量,方便统一维护
定义格式:

<!--定义自定义属性-->
<properties>
		<spring. version>5.1.9.RELEASE</ spring. version>
		<junit.version>4.12</junit.version>		  
</properties>

调用格式;

<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</ artifactId>
		<version>${ spring.version )</version>
</ dependency>
属性类别:内置属性

作用
使用maven内置属性,快速配置
调用格式:

$ { basedir}
$ {version }
属性类别:Setting属性

作用
使用Maven配置文件setting.xml中的标签属性,用于动态配置
调用格式:

${ settings . localRepository}
属性类别:Java系统属性

作用
读取Java系统属性
调用格式$ { user .home }
系统属性查询方式mvn help: system

属性类别:环境变量属性

作用
使用Maven配置文件setting.xml中的标签属性,用于动态配置
调用格式{env.JAVA_HOME}
环境变量属性查询方式mvn help :system

版本管理

工程版本区分

在这里插入图片描述

工程版本

SNAPSHOT(快照版本)

项目开发过程中,为方便团队成员合作,解决模块间相互依赖和时时更新的问题,开发者对每个模块进行构建的时候,输出的临时性版本叫快照版本(测试阶段版本)
快照版本会随着开发的进展不断更新

RELEASE(发布版本)

项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,这种版本所对应的构件文件是稳定的,即便进行功能的后续开发,也不会改变当前发布版本内容,这种版本称为发布版本

工程版本号约定

约定规范:

<主版本>.<次版本>.<增量版本>.<里程碑版本>
主版本:表示项目重大架构的变更,如: spring5相较于spring4的迭代
次版本:表示有较大的功能增加和变化,或者全面系统地修复漏洞
增量版本:表示有重大漏洞的修复
里程碑版本︰表明一个版本的里程碑(版本内部)。这样的版本同下一个正式版本相比,相对来说不是很稳定,有待更多的测试

范例: 5.1.9.RELEASE

资源配置

资源配置多文件维护

在这里插入图片描述

配置文件引用pom属性

作用:在任意配置文件中加载pom文件中定义的属性
在这里插入图片描述

资源配置总结

配置文件中读取pom属性值
1、在pom文件中设定配置文件路径
2、开启加载pom属性过滤功能
3、使用${属性名}格式引用pom属性

多环境开发配置

多环境兼容

在这里插入图片描述

多环境配置

<!--创建多环境-->
    <profiles>
        <!--定义具体的环境:生产环境-->
        <profile>
            <!--定义环境对应的唯一名称-->
            <id>pro_env</id>
            <!--定义环境中换用的属性值-->
            <properties>
                <jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url>
            </properties>
            <!--设置默认启动-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!--定义具体的环境:开发环境-->
        <profile>
            <id>dep_env</id>
            <properties>
                <jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url>
            </properties>
        </profile>
    </profiles>

加载指定环境

作用:加载指代功能环境
调用格式:mvn 指令 -p 环境定义 id
范例:mvn install -p pro_env

多环境开发配置

1、配置多环境
2、执行构建命令并指定加载对应环境配置信息

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:12:19  更:2021-11-23 12:13:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:07:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码