1.理解的Spring的DataAccessException
DataAccessException:是Spring提供了一種與特定技術無關的異常,實現服務層與數據訪問層的分離。
你不一定要處理DataAccessException,同時由于DataAccessException是NestedRunTimeException的子類,
你可以通過它的getCourse()獲得導致這個異常的另一個異常,這樣你就可以獲得與特定技術相關的異常信息。
Spring為你打造異常分類
Spring清楚與特定技術相關的異常,Spring自己會拋出更為精確的異常
CleanupFailureDataAccessException
DataAccessResourceFailureException
DataIntegrityViolationException
DataRetrieveFailureException
DeadlockLoserDataAccessException
IncorrectUpdataSemanticsDataAccessException
InvalidDataAccessApiUsageException
InvalidDataAccessResourceUsageException
OptimisticLockingFailureException
TypeMismatchDataAccessException
UncategorizeDataAccesException
2.與DataSource一起工作
從JNDI中獲得DataSource
創建一個DataSource連接池? org.apache.commons.dbcp.BasicDataSource
在測試時使用DataSource?? DriveManageDataSource
3.一致的DAO支持
Tempate模式
流程順序不變,可能有某個流程的細節是要變化,這個交給接口了,然后每個實現著去實現這個接口就可以。
所以Spring是通過提供相應的模板類來實現的,同時也提供了支撐類。
4.Spring與hibernate整合
Spring與hibernate整合主要在以下幾方面:
整合事務管理
異常處理
線程安全,輕量級模板類
便利的支持類
資源管理
配置SessionFactory
LocalSessionFactoryBean
dataSource
hibernateProperties
mappingDirectoryLocations
mappingResources
HibernateTemplate
HibernateDaoSupport
1.如何通過EL訪問Implicit Object
EL可以用在兩個位置:
a.template text
b.標準標簽和自定義標簽的屬性設置
Implicit Object
與取值范圍有關的: applicationScope, sessionScope, requestScope, pageScope
與輸入輸出有關的:param, paramValues
與head有關的:header,headerValues
與cookie有關:cookie
與ServletContext的初使化參數有關:initParam
還有一個pageContext
2.EL訪問操作符
property操作符號:.或者 []
集合操作符號:[]
如果要訪問的屬性里面包含非字母,必須要用[]
3. EL其他操作符號
a.Arithmetic: +,-(binary),*,/(div),%(mod)
b.logic: &&(and),||(or), !(not)
c.relational:==(eq), !=(ne), <(lt), >(gt),<=(le),>=(ge)
d.empty:用來判斷是否為null或empty
e.conditional: ?
4.EL functions
a.如何使用el functions
${prefix:functionName(args0,...)}
b.如何定義一個function
定義function必須是一個public static方法,且類的訪問修飾符也是public
package willim;
public class MyFunction{
?public static boolean equals(String str1, String str2) {
???return str1.equals(str2);
?}
}
c.配置descriptor
<function>
??<name>equals</name>
??<function-class>willim.MyFunction</function-class>
??<function-signature>boolean equals(java.lang.String, java.lang.String)</function-signature>
</function>