1)基础
(1)SQLyog
(2)3大框架整合的回顾
(3)本项目的座标是必须的
(4)导入一个依赖:
<groupId>
<artifactId>
<version>
注意:其实写入一个座标,并不是导入一个jar包:
1:spring-context 5.0.2
aop、beans、context、core、expression、jcl
因为:导入一个包时,它所依赖的其它包都会自动导入进来;
2:spring-beans 4.2.4
点击带有分叉的按钮(Show Dependencies)-->项目及其jar包下 及其 jar包的jar包的传递依赖的关系图
存在很大的问题:
spring-core,一个是4.2.4 一个是 5.0.2;
如果beans比context放前面, 发现pom中2个依赖配置的先后关系导致导入的jar包都不一样了
(5)解决jar冲突方法
方式1:第一声明优先原则(先声明的jar包座标下的依赖包可以优先进入项目中);
方式2: 路径近者优先原则(直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径最近的)
理解2个概念:
直接依赖: 项目中直接导入的jar包就是该项目的直接依赖包;
传递依赖: 项目中没有直接导入的jar包,可以直接通过项目直接依赖jar包传递到项目中去;
方式3: 排除法[推荐]
(当我们要排除某个jar包下依赖包,在配置exclusions标签的时候,内部可以不写版本号,
因为此时依赖包使用的版本和默认的本jar包一样)
<exclisions>
<exclusion>
<groupId>
<artifactId>
<exclusion>
...
<exclisions>
总结: 整理解决完毕冲突的jar包版本的整合-->下次直接粘贴即可
(6)一些标签
1:导入tomcat7插件:后,拿到别的项目的依赖包,都属于传递依赖.
<build>
<plugins>
<plugin>
<groupId>
2:项目依赖的jar包:
<dependencies>
3:锁定jar包版本:
<dependencyManagement> (这个只启动锁定版本的作用,并不会引入jar包)
说明:
maven工程可以分父子关系的. 凡是依赖别的项目后,拿到别的项目的依赖包,都属于传递依赖.
如: A项目被B项目依赖,那么我们A项目中所有jar包都会传递到B项目中.
如:spring 5.x B项目却是spring 4.x,B项目开发者,如果在B项目中导入一套ssm框架
的jar包,对于B项目是直接依赖,直接依赖的jar包,就会把A项目传递的jar包覆盖掉,
那么此时,A项目运行需要5.x的spring包,B项目却要spring 4.x项目的包,代码就起
冲突了.
为了防止以上情况出现: 我们可以A项目中主要jar包锁住,那么其他依赖该项目的项目中,
即便是有同名jar包直接依赖,也无法覆盖.
如何锁jar包?
XML中的EL表达式,就是KEY值,
统一管理jar包版本:
<properties>
...
之所以能这样写,完全取决于约束
2)2大核心功能:
依赖管理(maven对项目中jar包的管理过程):
1:传统工程我们直接把jar包放置在项目中;
2:maven工程真正的jar包放置在仓库中,项目中只用放置jar包的座标;
一键构建(此功能不是必须,因为可以使用我们自己安装的tomcat进行上述功能):
1:maven自身集成了tomcat插件,可以对项目进行编译、测试、打包、安装、发布等操作;
3)依赖管理说明:
(1)3类仓库
1:本地仓库
2:远程仓库(即私服:放置了我们公司内部开发需要用的jar包,不用联网的情况下使用,局域网去远程仓库下载jar包)
3:中央仓库(安装完maven后,就自动连接了中央仓库,可以联网即可从中央仓库下载jar包到本地仓库)
(2)3类仓库的关系
1:当启动maven工程的时候,maven工程会通过pom文件中jar包的座标去本地仓库找对应的jar包;
找本地的源码;
2:默认情况下,如果本地仓库没有对应jar包,maven工程会自动从中央仓库下载jar包到本地仓库;
3:在公司中,如果本地没有对应jar包,会先从私服下载jar包;
4:如果私服也没有,可以从中央仓库下载 也可以从 本地上传(本地的仓库打成包上传到私服);
4)一键构建说明
(1)clean
(2)compile
(3)test
(4)package: 打在了target下
(5)install: 安装到本地仓库
(6)deploy: 本地做好的项目直接上传好私服
3套生命周期:
clean
默认生命周期
站点生命周期
5)maven工程拆分与聚合的思想
6)传统工程
(1)用web-app骨架创建工程
(2)新建java文件夹-->Mark Directory as--> Sources Root
(3)新建resources文件夹(配置文件)-->Mark Directory as--》Resources Root
(4)新建test文件夹-->新建java文件夹-->Mark Directory as--> Sources Root
用Mytabis持久层框架,将不用写实现类,让Mytabis帮我们生成接口的代理对象
resources下不能写.,写/,-->新建ItemsDao.xml写入约束;
Mytabis和Spring整合的,因此不用创建主Mytabis主配置文件,而是所有信息交给Spring管理即可:
applicationContext.xml-->写入约束:
dao层配置文件
1:配置连接池-->反射的方式写出驱动类对象;
2:SqlSessionFactotyBean工厂:
放入连接池对象;
SqlSession配置,因为SqlSession是线程不安全的,我们每次使用新的SqlSession;
3:扫描接口包路径,生成所有接口的代理对象,并且放入spring容器中;
测试:
获取spring容器 ApplicationContext
从容器中获取dao代理对象
service层配置文件
原则: 自己写的类用注解,框架的类用配置文件;
@Autowired注解通: 写完的变量是没有值得,让Spring容器帮我注入一个值;
1:配置组件扫描;
2:aop面向切面编程,切面就是切入点和通知(增强类)的组合;
3:tx:advice-->配置的事务的通知
4:aop:pointcut配置切面
面向切面编程思想配置好了我们的声明事务;
接着,就不要拿dao了,要去拿service
SpringMVC:
组件扫描;
处理器映射,处理器适配器;
视图解析器: 前缀 + 后缀;
释放静态资源;
EL表达式