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表達式