SSM框架(SpringMVC + Spring + MyBatis)常用的jar包介紹
junit.jar:
junit是java語言的單元測試框架,是程序員進行的測試,所以又成爲白盒測試。Junit是xUnit的一個子集,在c++python,java等語言中都有不同的名字。裏面有許多測試的封裝函數,並且每一個單元測試都需要帶上@Test。
<!-- 使用junit4 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
logback:
是由log4j的創始人設計的又一個開源的日誌組件,當前的logback分成三個模塊:
logback-core.jar
logback-classic.jar
logback-access.jar
core是其他兩個模塊的基礎,classic是log4j的一個改良版本,access模塊與Servlet容易集成提供從Http訪問日誌的功能。
/**************************************************************************************************************************************
名詞解釋:
日誌:
服務器運行,數據庫的操作,電腦上的程序,手機上的app在運行,服務的時候,都會產生一個叫做log的事件記錄,每一行的日誌都會記載着日期,具體時間,使用者,及進行的操作等。
log4j.jar:
log4j是apache的一個開源項目,通過log4j,我們可以把控制日誌信息輸送到你想要到達的地方,例如控制檯,各種項目中的組件,文件中等等。我們可以決定每一條的日誌信息輸出format(格式)。在項目龐大的時候,我們就非常需要log4j這類的操作包,來查看它的輸出信息。同時log4j也是一個非常強大的日誌包,它內部有許多語言的接口,例如c,c++,net,sql,java等等。
****************************************************************************************************************************************/
slf4j-api.jar:
slf4j-api是簡單的日誌門面,是存取日誌的標準接口。爲什麼要使用slf4j?我們要知道slf4j知識一個日誌標準,並不是日誌系統的具體實現,slf4j只做兩件事,提供日誌接口,提供獲取具體日誌對象的方法。logback是slf4j的具體實現。slf4j的用法就是常年不變的一句"Logger logger = LoggerFactory.getLogger(Object.class);通過LoggerFactory去拿slf4j的具體接口。
<!-- 1:日誌 java日誌:slf4j,log4j,
logback,common-logging
slf4j是規範/接口
日誌實現:log4j,logback,common-logging
使用slf4j+logback -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 實現slf4j接口並整合 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
</dependency>
(logback-access.jar加不加就要看你項目情況而定了)
mysql-connector-java.jar:
是java連接mysql需要的驅動包,即mysql的jdbc驅動包,因爲我們需要使用jdbc來連接mysql數據庫。
c3p0.jar:
c3p0是一個開源的jdbc連接池,它拓展了傳統的jdbc數據庫連接池,支持jdbc2的標準擴展和jdbc3的規範。
爲什麼使用數據庫連接池?
因爲用戶每次連接都需要驗證,消耗大量的時間和資源,我們在系統初始化的時候,將數據庫連接作爲一個對象存放在數據庫連接池中,當用戶需要訪問數據庫時,不會創建一個新的連接,而是從數據庫連接池中取出一個已經建立的空閒連接對象,用戶使用結束後,對象不會關閉,而是放回數據庫連接池中。數據庫連接池管理連接,斷開,監視數據庫的連接數量和使用情況。
同時,也可以配置許多屬性,例如最大連接數,連接失敗重試次數,獲取連接超時時間,連接斷開後所有事務進行回滾操作。
<!-- 數據庫相關依賴 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
mybatis.jar:
MyBatis 是支持定製化 SQL、存儲過程以及映射的持久層框架。MyBatis 避免了JDBC繁瑣的代碼和手動設置參數去獲取結果集。MyBatis 通過簡單的配置xml或者註解,將接口和 Java 的 POJOs(普通的 Java對象)映射成數據庫中的記錄。
<!-- DAO框架:mybatis依賴 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
mybatis-spring.jar:
MyBatis-Spring 會幫助你將 MyBatis 代碼無縫地整合到 Spring 中。它將允許 MyBatis 參與到 Spring 的事務管理之中,創建映射器 mapper 和 SqlSession 並注入到 bean 中,以及將 Mybatis 的異常轉換爲 Spring 的 DataAccessException。最終,可以做到應用代碼不依賴於 MyBatis,Spring 或 MyBatis-Spring。
<!-- mybatis自身實現的spring整合依賴 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
standard.jar和jstl.jar:
standard和jstl是jsp編寫所需要的jar包,standard是jsp的標準標籤庫,jstl是用於jsp頁面中的el表達式。
jackson-databind.jar:
將JSON格式的數據轉化爲類對象,我們知道從web從服務器中拿數據,是訪問api(Application Programming Interface,應用程序接口)來拿到封裝成json格式的數據,在這個包中就實現了這樣一個方法,就不需要我們去手動實現這一過程了。
javax.servlet-api.jar:
編寫過servlet就知道要用到HttpServletRequest和HttpServletResponse等對象,這些對象都是要靠這個jar包才能使用的。但是在3.0版本前,這個包是叫做:servlet-api.jar
<!-- 3:Servlet web相關依賴 -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
spring-core.jar:
Spring的核心組件,spring框架都需要用到這個jar包。
spring-beans.jar:
是那些形成Spring應用的主幹的java對象。它們被Spring IOC容器初始化,裝配,和管理。這些beans通過容器中配置的元數據創建。比如,以XML文件中<bean/>的形式定義。
即寫了一個接口,這個接口通過一個類實現了,然後當我們要進行調用這個接口的時候,只需要找到接口,而不需要找到實現它的類。這位大佬的博客裏講得很清楚,大家看看,裏面有講到什麼是IOC(控制反轉)和DI(依賴注入):
https://blog.csdn.net/qq_42709262/article/details/81951402
spring-context.jar:
通過應用上下文裝載bean的定義並把它們組裝起來。Spring應用上下文全權負責對象的創建和組裝。Spring自帶了多種應用上下文的實現,它們之間主要的區別僅僅在於如何加載配置。
<!-- 1)spring核心依賴 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
spring-jdbc.jar:
是spring 官方提供的一個持久層框架,對jdbc進行了抽象和封裝,消除了重複冗餘的jdbc重複性的代碼,使操作數據庫變的更簡單。
spring-tx.jar:
負責在spring框架中實現事務管理功能。
<!-- 2)spring dao依賴 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
spring-web.jar:
這個jar文件包含Web應用開發時,用到Spring框架時所需的核心類。
spring-webmvc.jar:
這個jar文件包含Spring MVC框架相關的所有類。包含國際化、標籤、Theme、視圖展現的FreeMarker、JasperReports、Tiles、Velocity、XSLT相關類。
<!-- 3)spring web相關依賴 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
spring-test.jar:
使用spring中對Junit框架的整合功能, 對於單元測試和集成測試的簡單封裝。
如果用到切面編程(AOP),還需要用到aspectjweaver.jar這個包。
<!-- 4)spring test相關依賴 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency>