JRE System Library、Referenced Libraries、Web App Libraries的含義

  • JRE System Library、Referenced Libraries、Web App Libraries 這三個都是jar包的存放集合
  • JRE System Library:指Java SE 的經常使用庫文件集合,創建普通的Java項目均會使用。
  • Referenced Libraries:指你項目中所使用的第三方庫文件集合,若是你把項目所須要的其餘JAR包直接加在,項目 --> 屬性 --> Java Build Path --> Libraries 中的時候,Eclipse 會自動將這些JAR包歸類到一個集合中, 並取名爲 Referenced Libraries ,顯示在項目中。
  • 問:常常在SSH中出現jar包衝突,不知是 Referenced Libraries 中的jar文件衝突,仍是 WebRoot/WEB-INF/lib/ 下jar文件衝突?
    • 解答:編譯期衝突是由 Referenced Libraries 中jar包衝突引發;運行期衝突是由 WebRoot/WEB-INF/lib/ 下jar文件衝突引發的。
    • 首先,Referenced Libraries 能夠是引用 WebRoot/WEB-INF/lib/ lib下的jar包,也能夠是其餘從別的地方複製過來的第三方jar包。Referenced Libraries 是編譯環境下使用的JAR包,所謂編譯環境下使用的JAR包,就是說你在Eclipse中進行源文件的編寫的時候,所須要引用到的類都 Referenced Libraries 這個集合中的JAR包中拿。
    • WebRoot/WEB-INF/lib 中的JAR包是運行時環境下使用的JAR包,所謂運行時環境下使用的JAR包,就是說你在運行你的項目的時候所須要使用的JAR包的集合。
    • 注意區分兩種環境:編譯環境與運行環境。
  • Web App Libraries: 關於web項目沒有看到Web App Libraries,能夠經過右鍵項目 --> built path --> Configure built path --> 點擊libraries標籤 --> 選擇右邊的 Add Library… 按鈕 ,在彈出的窗口中選擇 Web App Libraries 添加便可。

  • Referenced Libraries 是存放第三方的jar包,也就是本身導入的jar包。在項目屬性的Java Build Path中的Libraries中配置。
    • 本人理解:這裏導入和配置jar包,都是爲了讓web工程可以在eclipse開發環境能夠正常編譯,不報錯而已。若是該web工程利用eclipse生成war包,是不會導出其jar包到 WEB-INF/lib文件夾下的。
  • Web App Libraries 的主要做用是讓eclipse導出war包的時候,會把其目錄下的全部jar或者項目中的工程引用都導出到WEB-INF/lib文件夾下。
    • Web App Libraries中的jar包在eclipse中項目屬性的Java EE Module Dependencies 配置的。若是你勾上了,或者添加了外部jar包,都會在WEB-INF/lib文件夾下生成。
    • 固然,若是你直接在WEB-INF/lib文件夾下,copy一個jar進入,刷新一下,Web App Libraries 也會自動增長一個jar的引用。簡單說,Java EE Module Dependencies的配置只針對Web App Libraries。
  • 在項目發佈的時候 Referenced Libraries 下面的jar包不會被打包

  • 補刀1:
    • EJB = Enterprise Java Bean
      • 實體Bean --> 相似於Hibernate中的持久化對象
      • 會話Bean --> 相似於Service
      • 消息驅動Bean --> 發送消息
    • EAR Libraries:開發EJB工程所需的庫包。
    • EAR Libraries:是開發JavaEE服務器端組件模型所須要的庫包。可是如今通常都用輕量化的框架實現模塊化。EJB太笨重了,2003年的淘寶就是採用EJB開發,如今已經不多見了。
    • 開發EJB工程所需的庫包,像咱們經常使用zip或者rar同樣,也是能夠解壓出來的。
    • 順便說下:
      • war包:是作好一個web應用後,一般是網站,打成包部署到容器中。
      • jar包:一般是開發時要引用通用類,打成包便於存放管理。
      • ear包:企業級應用,一般是EJB打成ear包。
      • 全部的包都是用jar打的,只不過目標文件的擴展名不同。

  • 補刀2:
    • cdn全稱是Content Delivery Network,主要用於加速靜態資源,如網站上面上傳圖片、媒體、以及引入的一些js和css等文件。它的加速依靠各個網絡節點,例如100臺CDN服務器分佈在全國,從上海訪問,會從最近的節點返回資源,這是核心。
相關文章
相關標籤/搜索