Maven解耦和MVC

重要的写前面:
1 新建web层 要新建 war 包的方式,不然无法新建servlet类。
其他 打成jar 包 就行了。
2 下面的 配置 配置的是MAVEN
tomcat插件的 tomcat (所以端口号 不要和 eclipse一样了)

1.1 maven 是什么?

Maven就是一个纯java开发的,项目管理工具。
1.2 优点
依赖管理: fileupload io
一键构建: mvn romcat:run 编译 测试 打包 部署

1.3 maven的下载和安装
下载: 3.6.1
安装: 解压就可以使用

1.4 配置环境变量
1.5 maven的常用命令
Clean clean的生命周期:
Compile test package install default的生命周期。
Site 站点的生命周期。 (不用)
结论: 不同生命周期的命令可以一起使用。 同一个生命周期的命令不能同时使用。

1.6 maven的目录结构(重点)

helloWolrd

|------main java代码
----java: 编写java源代码
----Resource: 存放配置文件的
-----webapps: 存放webRoot或者是WebContent下的内容 |----- test 测试代码
----java : 存放测试代码
----resource : 存放在测试过程当中使用到的配置文件。 |-----target: 存放编译后的字节码文件。
|------pom.xml maven工程的核心的配置文件:

1.7 Eclipse工具配置外置的maven
https://www.cnblogs.com/pengyan-9826/p/7767070.html

1.8 Eclipse 当中创建一个maven工程

2 创建一个maven项目
需求,编写一个Servlet,实现页面的跳转。
2.1 创建一个servlet
创建的servlet, HttpServlet 类找不到, 原因是,所属的jar包在本工程当中不存在。 此时pom.xml文件当中添加jar包的坐标。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>

将上述的坐标放在pom.xml文件当中,此时从本地仓库当中加载jar。 如果本地仓库不存在该包,就会从远程的中央仓库进行下载该jar,保存在本地仓库当中。

2.2 使用maven的一键构建将项目运行

当控制台上没有出任何的error,则说明已经正常的在tomcat的插件上运行了。
在这里插入图片描述
2.3 客户端浏览器访问
http://localhost:8080/maven-02/AServlet

2.4 控制台上出现了500
在这里插入图片描述

原因: 产生该问题的原因: 添加的jar包默认的有效范围是 编译阶段, 测试阶段, 打包阶段, 运行阶段都会生效, 此时运行的时候, 就会和tomcat当中的存在的jar包发生冲突。 此时需要修改该jar包的有效范围。

<scope>provided</scope> 

此时jar包在运行阶段不生效。

3 **

jar包的依赖范围 默认情况,不指定jar包的依赖范围, 默认是compile Compile: 有效范围,在各个阶段都有效。 一般jar默认 Provided: 除了在运行阶段不生效, 其他的阶段都生效。Servlet。 Runtime: 在运行阶段有效。 驱动jar包。 Test: 在编译阶段有效, 在测试阶段有效,打包,运行阶段无效。 Junit包,在测试阶段有效。 运行阶段无效。 4 maven的插件

**
4.1 调整jdk的版本
调整jdk的版本: 方式一, 直接在当前的pom文件当中修改,只对当前的工程有效。

<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.5.1</version>  
			<configuration>
				<source>1.7</source>
				<target>1.7</target>
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>
	</plugins>
</build>

解释: 将上述的插件配置当当前项目当中,此时当前的项目使用的jdk版本就是1.7 。 如果将上述的配置放在了setting文件当中, 此时maven默认使用的jdk就是1.7 。

方式二: 修改全局的jdk版本, 将以下的信息配置在setting文件当中。

<profile>   
    <id>jdk1.7</id>    
    <activation>   
        <activeByDefault>true</activeByDefault>    
        <jdk>1.7</jdk>   
    </activation>    
    <properties>   
        <maven.compiler.source>1.7</maven.compiler.source>    
        <maven.compiler.target>1.7</maven.compiler.target>    
        <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>   
    </properties>   
</profile>

4.2 调整tomcat的版本信息:

	<plugin>
  		<groupId>org.apache.tomcat.maven</groupId>
  		<artifactId>tomcat7-maven-plugin</artifactId>
  		<version>2.2</version>
  		<configuration>
  			<port>8080</port>
  			<path>/</path>
  			<uriEncoding>utf-8</uriEncoding>
  		</configuration>
	</plugin>

5 工程的拆分思想

Crm: web service dao 三层架构。
当CRM 系统的的dao层需要被其他的系统使用的时候, 只能是进行代码的copy。
存在的弊端: 当CRM系统的dao层, 修改了, 其他的系统只能修改源码。

解决: 系统的拆分:
将CRM系统拆分成多个子系统:
CMR 父工程
|------Dao: 一个子系统:
|-----Service: 一个子系统
|-----Web:一个子系统

当其他的系统: OA BOS系统用到了CRM的dao层, 只需要通过坐标引用就行。 不用再次编写代码。
优点: 减少了重复性的代码
到对dao层进行修改的时候, 值需要修改一份就好。

6 工程的聚合

运行系统的时候, 各个模块需要共同完成功能, 将各个模块聚合在一个父工程当中。
在父工程当中,定义一些具有通用性的jar包。

7 父子工程的创建
7.1创建一个父工程
在这里插入图片描述

2:创建出来的父工程如下

在这里插入图片描述
7.2:创建父工程下的子工程
1:Ssh-dao

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Ssh-service
Ssh-web 创建方式同上, web层选择的导包方式: war包。

2:创建完成后, 查询父工程pom.xml的文件,父工程当中已经引入了子工程
!!!!!!!!!没有出现 是因为在父工程上 单击右键新建的时候 选择新建 maven model
1!!!!!!最上面的勾选 (creat a simple 也要勾选)

查看子工程pom.xml文件,引入了父工程的坐标
在这里插入图片描述

8 依赖的添加

 <dependencies>
  	<dependency>
  		<groupId>com.yd</groupId>
  		<artifactId>ssm-service</artifactId>
  		<version>0.0.1-SNAPSHOT</version>
  	</dependency>
  	<dependency>
  		<groupId>javax.servlet</groupId>
  		<artifactId>javax.servlet-api</artifactId>
  		<version>3.0.1</version>
  		<scope>provided</scope>
  	</dependency>
  </dependencies>

scope的配置 也会影响—tomcat插件提供的 servlet 插件 会在运行的时候使用,会造成jar包冲突,所以要设置为 provided。

作业:
(0)创建一个Servlet, 客户端发出请求, 实现页面的跳转。

(1)父子工程, 完成查询操作:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

东方-教育技术博主

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值