2023年3月

2017年3月18日 老师讲的课程

\day01视频\01maven依赖管理.avi;
\day01视频\02maven项目构建.avi;
\day01视频\03maven程序安装.avi;
\day01视频\04maven仓库类型.avi;
\day01视频\05配置maven本地仓库.avi;
\day01视频\06maven项目标准目录结构.avi;
\day01视频\07maven的常用命令.avi;
\day01视频\08maven的生命周期.avi;
\day01视频\09在eclipse中配置maven插件.avi;
\day01视频\10创建maven项目&查找依赖.avi;
\day01视频\11依赖范围.avi;
\day01视频\12运行调试maven项目.avi;
\day01视频\13maven整合struts2.avi;
\day01视频\14maven的概念模型.avi;
\day01视频\15总结.avi;
\day02视频\01传递依赖冲突解决-maven自己调解原则.avi;
\day02视频\02传递依赖冲突解决-排除依赖&版本锁定.avi;
\day02视频\03ssh配置文件加载过程.avi;
\day02视频\04ssh整合-struts2跟spring框架整合.avi;
\day02视频\04ssh整合-分别搭建环境.avi;
\day02视频\06ssh整合-spring跟Hibernate框架整合.avi;
\day02视频\07ssh整合功能案例实现.avi;
\day02视频\08项目拆分-创建父工程.avi;
\day02视频\09项目拆分-创建子模块ssh-dao.avi;
\day02视频\10项目拆分-创建子模块ssh-service.avi;
\day02视频\10项目拆分-创建子模块ssh-web.avi;
\day02视频\11传递依赖的范围.avi;
\day02视频\12运行的方式.avi;
\day02视频\13私服安装.avi;
\day02视频\14私服上仓库类型.avi;
\day02视频\15上传jar包到私服.avi;
\day02视频\16从私服上下载jar包到本地仓库.avi;
\day02视频\17总结.avi;
\day02视频\18maven的好处avi.avi;

=========.txt,.pdf,.doc,.docx,.sql列表

\day01\3.参考资料\maven-helloworld\target\surefire-reports\cn.itcast.maven.test.HelloTest.txt;
\day01\3.参考资料\配置文件\私服相关配置.txt;
\day01\4.笔记\Maven-教案-基础.pdf;
\day01\4.笔记\随堂笔记.docx;
\day02\3.参考资料\sql\cst_customer.sql;
\day02\3.参考资料\配置文件\私服相关配置.txt;
\day02\4.笔记\Maven-教案-实战.pdf;
\day02\4.笔记\随堂笔记.docx;

Maven的好处:

maven
的两大核心:

**依赖管理:

jar
包管理过程

**项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署等一系列的操作都通过
命令
来实现

maven
项目的生命周期(了解)


maven
中存在“三套”生命周期,每一套生命周期相互独立,互不影响。
在一套生命周期内,执行后面的命令前面操作会自动执行

CleanLifeCycle
:清理生命周期

Clean

defaultLifeCycle
:默认生命周期

compile,test,package,install,deploy

siteLifeCycle
:站点生命周期


===安装Maven环境:

1、安装好maven安装包,

maven_home
环境变量配置到
path
环境变量中

2、
配置
eclipse

maven
环境

A)
配置
m2e
插件,
Mars2
版本自带
maven
插件

B)
需要配置
maven
程序

C)
配置本地仓库:让
maven
程序知道仓库在哪 在maven的配置文件 setting.xml里打开 <localRepository 配置:


==》

D) 构建本地仓库的索引(因为里面的jar包超级多)

===创建Maven项目:

1、创建,勾选默认文件结构,填写项目信息



2、不全缺少的 WEB-INF文件夹,和web.xml文件


通过工具生成 web.xml

3、指定 jdk
编译版本
,在
pom.xml
中添加插件


==>

点击确定后,会在pom.xml中添加了 <build>的节点,需要手动添加内容 可以制定编译的jdk的版本(这样就不会默认都用系统自带的jdk版本了)

4、
创建
servlet,serlvet
编译报错,原因:缺失
servlet-api-xx.jar

5、添加jar包,【双击pom.xml,添加依赖,查找jar包,选择对应jar包的合适版本】

查找依赖

注意:选择依赖选择
[jar]

依赖范围(了解)

添加依赖范围:默认是
compile

Provided:
运行部署到
tomcat
不在需要

如果将
servlet-api.jar
设置为
compile,
打包后包含
serlvet-api.jar

war
包部署到
tomcat

tomcat
中存在
servlet-api.jar
包冲突。导致运行失败。

5、修改后,或者修复错误后要保存,经常点击项目右键  maven-->Update Project...

=========总结

1、 安装

2、 Maven
标准的目录结构

ProjectName

src

main

java

resources

[webapp/WEB-INF/web.xml]

Test

Java

Resources

pom.xml

3、 Maven
常用命令

a) Clean

b) Compile

c) Test

d) Package:
项目根目录
target
目录

e) Install
:本地仓库

4、
使用
eclipse
开发
maven
项目

a) 区别:

b)
不在拷贝
jar

c) 项目目录结构不同

5、 Pom.xml:
项目对象模型

a) 本项目的坐标信息

b)
本项目
jdk
编译版本的信息

c) 本项目需要的依赖的坐标的信息

《Maven精品教程视频\day02视频\03ssh配置文件加载过程.avi;》

此课程中讲 SSH三大框架整合的加载流程,还可以,初步接触的朋友可以听一听。

\day02视频\04ssh整合-struts2跟spring框架整合.avi;
\day02视频\04ssh整合-分别搭建环境.avi;
\day02视频\06ssh整合-spring跟Hibernate框架整合.avi;
\day02视频\07ssh整合功能案例实现.avi;

》 这几节课都可以听,可以快速了解一下 shh的搭建。

-------------测试 每个模块都测试

DAO模块中
也可以写测试,选中某个单元文件,右键创建 Junit测试单元,选择放在 test 目录  下面是注解方式

有必要重复听,看看Test中是如何实现 自动注入对象的,之前本人测试时碰到不可以注入。

import static org.junit.Assert.*;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.test.context.ContextConfiguration;importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.
class)
@ContextConfiguration(
"classpath:spring/applicationContext-*.xml")public classCustomerDaoTest {

@Autowired
privateCustomerDao dao;

@Test
public voidtestFindOne() {
dao.findOne(
"1");
}

在service 模块
写测试??  可以写。  下面是手动加载bean方式。

classpath*:spring/applicationContext-*.xml  第一个*指加载不仅仅当前 classpath(可以其他模块jar包的classpath), 第二*通配符。
@Testpublic voidtestFindOne() {
ClassPathXmlApplicationContext classPathXmlApplicationContext
= new ClassPathXmlApplicationContext("classpath*:spring/applicationContext-*.xml");
CustomerService service
= (CustomerService) classPathXmlApplicationContext.getBean("customerService");
service.findOne(
"1");
}

1.1
运行方式

M
aven
方式:命令的

方式
1
:运行父工程。父工程将各个子模块聚合到一起。将
ssh-web

war
包发布到
tomcat

方式
2
:直接运行
web
工程

其他方式:传统的,

部署到
tomcat

既然是WEB中的 Action找不到,先看web模块中 spring 的配置文件是否定义bean;在看struts.xml是否有定义,

在看这些 spring配置文件是否都可以加载到,看web.xml ,果然里面有错误:

对现在已有
maven ssh
项目进行拆分,拆分思路:将
dao
层的代码已经配置文件全体提取出来到一个表现上独立的工程中。同样
service

action
拆分。

ssh-parent:
父工程

ssh-dao:
(子模块)

ssh-service

ssh-web

拆分完成对拆分后的项目进行聚合,提出概念父工程

1.1
创建父工程



创建好父工程目录结构:只有
pom.xml
,可以推断父工程不进行编码。

1、
项目需要的依赖的信息,在父工程中定义,子模块继承过程

2、
将各个子模块聚合到一起

1.1
将创建父工程发布到本地仓库

将来
service

dao
工程发布到本地仓库。发布的
service
工程会报错。

如果忘记此步骤,将父工程发布到本地仓库。

1.1
创建子模块
ssh-dao

S
sh-dao
负责数据访问层:包含
dao
相关代码
&
配置文件


1.1.1

spring
的配置文件拆分

1.1
创建子模块
ssh-service



ssh-dao
工程打包到本地仓库;


service
工程
pom.xml
文件添加
ssh-dao
的依赖

1.1.1
单元测试

1、
批量加载
spring
配置文件

a)
classpath:spring/applicationContext-*.xml

b)
classpath
*
:spring/applicationContext-*.xml
:既要加载本项目中配置文件,还要加载
jar
包中配置文件

2、
传递依赖范围(了解)

A:ssh-service
工程

B:ssh-dao
工程

C:junit
单元测试

总结:当项目中需要的某一个依赖没有传递过来。在自己工程中添加对应依赖就可以。

不一定要把前面的依赖都修改一遍,直接在自己模块添加进来即可。

1.1
创建子模块
ssh-web

war


ssh-web
项目中添加
service
工程依赖。

W
eb.xml

1.1
运行方式

M
aven
方式:

方式
1
:运行父工程。父工程将各个子模块聚合到一起。将
ssh-web

war
包发布到
tomcat

方式
2
:直接运行
web
工程

其他方式:

部署到
tomcat