maven基礎回顧

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章