工作上遇到過的Spring jar包,紀錄一下它們的功用和一些常見的概念
spring-aop
spring的面向切面程式設計,提供AOP的實現
AOP(Aspect-oriented programming):面向切面程式設計
spring-beans
用來訪問配置文件、管理以及創造bean,是spring IOC的實現基礎
IOC(Inversion of Control):控制反轉原則,用來降低程式碼間的耦合度,最常見的方法叫做
DI(Dependency Injection):依賴注入,從外部注入類別中的屬性
舉例來說,在XML檔裡面有一個bean為
<bean id="queryController" class="com.test.queryController">
<property name="methodNameResolver" ref="paraMethodResolver"/>
<property name="queryService" ref="queryListService"/>
<property name="queryListPage" value="queryList"/>
<property name="maxRow" value="100"/>
</bean>
queryController這個類別裡面有兩個屬性為queryService和queryListPage
我在這個XML檔裡面直接指定值給它
也就是指定queryService參考的類別為queryListService
queryListPage的屬性值為queryList
我可以直接在這裡設定,而不用進到類別裡的程式碼去設定
又在queryController裡面我有設定getter和setter
在程式碼中我只需要使用getter就好,不用去使用setter去設定,DI會自動去使用setter將bean中指定的值帶入
另外在屬性值上加上@Autowired這個註解,更可以直接省略掉setter,DI就會自動帶入,以此可以加強安全性
spring-binding
工作專案出現,但是網路上查不到資訊,以後再找找看
spring-context
作為Spring的IOC容器,基本上整合了Spring的大部分功能的基礎
它呼叫了大部分的spring core中的方法,為Spring提供運行環境,用以保存各個對象狀態。
spring-context-support
spring-context的擴展包
spring-core
Spring的核心,其他包會依賴此包
spring-data-commons
工作專案出現,但是網路上查不到資訊,以後再找找看
spring-expression
可以使用Spring表達式(Spring Expression Language,SpEL)
spring-jdbc
對jdbc的封裝
JDBC(Java DataBase Connectivity):JAVA資料庫連結
用來規範客戶端程式如何存取資料庫的應用程式介面
spring-js
工作專案出現,但是網路上查不到資訊,以後再找找看
spring-js-resources
工作專案出現,但是網路上查不到資訊,以後再找找看
spring-orm
整合第三方的orm(Object Relational Mapping,物件關聯對映)實現,如hibernate,ibatis…等等
spring-oxm
spring3.0的新特性o/mMapping,主要用來實現xml和JavaBean物件(常見的是POJO)的互相轉換
但O/XMapper只是定義由第三方框架實現統一的介面,要利用Spring的O/X功能
還需要一個在Java物件和XML之間來回轉換的實用程式
POJO(Plain old Java object):一個單純的Java物件,沒有繼承、實現接口和被框架入侵的物件
但現在比較常被指為一個資料庫接收的容器,並擁有getter和setter
spring-security-config
spring-security-core
spring-security-data
spring-security-taglibs
spring-security-web
Spring Security是一個能夠為基於Spring的企業應用系統提供聲明式的安全訪問控制解決方案的安全框架
spring-tx
為JDBC、Hibernate、JDO、JPA等提供的一致的宣告式和程式設計式事務管理
spring-web
Spring框架開發Web時所需的核心
spring-webflow
用來設計網頁流程
spring-webmvc
包含SpringMVC框架相關的所有類
包含國際化、標籤、Theme、檢視展現的FreeMarker、JasperReports、Tiles、Velocity、XSLT相關類
如果你的應用使用了獨立的MVC框架,則無需這個JAR檔案裡的任何類別
要執行一個MVC專案,至少要有以下jar
1.spring-core.jar
2.spring-beans.jar
3.spring-aop.jar
4.spring-context.jar
5.spring-jdbc.jar
6.spring-web.jar