1.理解的Spring的DataAccessException
DataAccessException:是Spring提供了一種與特定技術(shù)無(wú)關(guān)的異常,實(shí)現(xiàn)服務(wù)層與數(shù)據(jù)訪問(wèn)層的分離。
你不一定要處理DataAccessException,同時(shí)由于DataAccessException是NestedRunTimeException的子類(lèi),
你可以通過(guò)它的getCourse()獲得導(dǎo)致這個(gè)異常的另一個(gè)異常,這樣你就可以獲得與特定技術(shù)相關(guān)的異常信息。
Spring為你打造異常分類(lèi)
Spring清楚與特定技術(shù)相關(guān)的異常,Spring自己會(huì)拋出更為精確的異常
CleanupFailureDataAccessException
DataAccessResourceFailureException
DataIntegrityViolationException
DataRetrieveFailureException
DeadlockLoserDataAccessException
IncorrectUpdataSemanticsDataAccessException
InvalidDataAccessApiUsageException
InvalidDataAccessResourceUsageException
OptimisticLockingFailureException
TypeMismatchDataAccessException
UncategorizeDataAccesException
2.與DataSource一起工作
從JNDI中獲得DataSource
創(chuàng)建一個(gè)DataSource連接池? org.apache.commons.dbcp.BasicDataSource
在測(cè)試時(shí)使用DataSource?? DriveManageDataSource
3.一致的DAO支持
Tempate模式
流程順序不變,可能有某個(gè)流程的細(xì)節(jié)是要變化,這個(gè)交給接口了,然后每個(gè)實(shí)現(xiàn)著去實(shí)現(xiàn)這個(gè)接口就可以。
所以Spring是通過(guò)提供相應(yīng)的模板類(lèi)來(lái)實(shí)現(xiàn)的,同時(shí)也提供了支撐類(lèi)。
4.Spring與hibernate整合
Spring與hibernate整合主要在以下幾方面:
整合事務(wù)管理
異常處理
線(xiàn)程安全,輕量級(jí)模板類(lèi)
便利的支持類(lèi)
資源管理
配置SessionFactory
LocalSessionFactoryBean
dataSource
hibernateProperties
mappingDirectoryLocations
mappingResources
HibernateTemplate
HibernateDaoSupport
1.如何通過(guò)EL訪問(wèn)Implicit Object
EL可以用在兩個(gè)位置:
a.template text
b.標(biāo)準(zhǔn)標(biāo)簽和自定義標(biāo)簽的屬性設(shè)置
Implicit Object
與取值范圍有關(guān)的: applicationScope, sessionScope, requestScope, pageScope
與輸入輸出有關(guān)的:param, paramValues
與head有關(guān)的:header,headerValues
與cookie有關(guān):cookie
與ServletContext的初使化參數(shù)有關(guān):initParam
還有一個(gè)pageContext
2.EL訪問(wèn)操作符
property操作符號(hào):.或者 []
集合操作符號(hào):[]
如果要訪問(wèn)的屬性里面包含非字母,必須要用[]
3. EL其他操作符號(hào)
a.Arithmetic: +,-(binary),*,/(div),%(mod)
b.logic: &&(and),||(or), !(not)
c.relational:==(eq), !=(ne), <(lt), >(gt),<=(le),>=(ge)
d.empty:用來(lái)判斷是否為null或empty
e.conditional: ?
4.EL functions
a.如何使用el functions
${prefix:functionName(args0,...)}
b.如何定義一個(gè)function
定義function必須是一個(gè)public static方法,且類(lèi)的訪問(wèn)修飾符也是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>
摘要: eBaoTech? Test
一
筆試
全英文(答案僅代表本人意見(jiàn),本人做了丑陋的翻譯。希望自己認(rèn)真思考。)
以...
閱讀全文