java web知識點(diǎn)總結(jié)(2)
九:Common Annotations
Common annotations原本是Java EE 5.0(JSR 244)規(guī)范的一部分,現(xiàn)在SUN把它的一部分放到了Java SE 6.0中。
隨著Annotation元數(shù)據(jù)功能(JSR 175)加入到Java SE 5.0里面,很多Java 技術(shù)(比如EJB,Web Services)都會用Annotation部分代替XML文件來配置運(yùn)行參數(shù)(或者說是支持聲明式編程,如EJB的聲明式事務(wù)),如果這些技術(shù)為通用目的都單獨(dú)定義了自己的Annotations,顯然有點(diǎn)重復(fù)建設(shè),所以,為其他相關(guān)的Java技術(shù)定義一套公共的Annotation是有價值的,可以避免重復(fù)建設(shè)的同時,也保證Java SE和Java EE 各種技術(shù)的一致性。
下面列舉出Common Annotations 1.0里面的10個Annotations Common Annotations Annotation Retention Target Description Generated Source ANNOTATION_TYPE,CONSTRUCTOR,F(xiàn)IELD,LOCAL_VARIABLE,METHOD,PACKAGE,PARAMETER,TYPE 用于標(biāo)注生成的源代碼Resource Runtime TYPE,METHOD,F(xiàn)IELD用于標(biāo)注所依賴的資源,容器據(jù)此注入外部資源依賴,有基于字段的注入和基于setter方法的注入兩種方式 Resources Runtime TYPE同時標(biāo)注多個外部依賴,java認(rèn)證網(wǎng),加入收藏容器會把所有這些外部依賴注入PostConstruct Runtime METHOD標(biāo)注當(dāng)容器注入所有依賴之后運(yùn)行的方法,用來進(jìn)行依賴注入后的初始化工作,只有一個方法可以標(biāo)注為PostConstruct PreDestroy Runtime METHOD當(dāng)對象實(shí)例將要被從容器當(dāng)中刪掉之前,要執(zhí)行的回調(diào)方法要標(biāo)注為PreDestroy RunAs Runtime TYPE用于標(biāo)注用什么安全角色來執(zhí)行被標(biāo)注類的方法,這個安全角色必須和Container的Security角色一致的。RolesAllowed Runtime TYPE,METHOD用于標(biāo)注允許執(zhí)行被標(biāo)注類或方法的安全角色,這個安全角色必須和Container的Security角色一致的 PermitAll Runtime TYPE,METHOD允許所有角色執(zhí)行被標(biāo)注的類或方法DenyAll Runtime TYPE,METHOD不允許任何角色執(zhí)行被標(biāo)注的類或方法,表明該類或方法不能在Java EE容器里面運(yùn)行DeclareRoles Runtime TYPE用來定義可以被應(yīng)用程序檢驗的安全角色,通常用isUserInRole來檢驗安全角色。
注意:
1.RolesAllowed,PermitAll,DenyAll不能同時應(yīng)用到一個類或方法上
2.標(biāo)注在方法上的RolesAllowed,PermitAll,DenyAll會覆蓋標(biāo)注在類上的RolesAllowed,PermitAll,DenyAll
3.RunAs,RolesAllowed,PermitAll,DenyAll和DeclareRoles還沒有加到Java SE 6.0上來
4. 處理以上Annotations的工作是由Java EE容器來做,Java SE 6.0只是包含了上面表格的前五種Annotations的定義類,并沒有包含處理這些Annotations的引擎,這個工作可以由Pluggable Annotation Processing API(JSR 269)來做
hibernate常用的函數(shù)介紹
一、MySQL的常用的串函數(shù)在Hibernate中的應(yīng)用:
1.lower() 轉(zhuǎn)換成小寫
2.length() 字符長度,返回long
3.ltrim() left trim 空格
4.reverse() 串反轉(zhuǎn)
5.rtrim() right trim 空格
二、常用數(shù)學(xué)函數(shù)
6.abs() 取絕對值
7.floor() 和round()
三、日期函數(shù)
curdate() 返回當(dāng)前日期 返回Hiberante.Date() 注:Hiberante.*表示Hibernate的基本類型,所對應(yīng)的Mysql的類型就是Mysql的類型
curtime() 返回當(dāng)前時間 返回Hiberante.TIME()
current_timestamp() 返回當(dāng)前時間 返回Hibernate.TIMESTAMP
DATE_FORMAT() 返回當(dāng)前格式化的字符串的日期 Hibernate.String
hibernate工作機(jī)制
Hibernate是(1)中間件,介于應(yīng)用程序和數(shù)據(jù)庫的軟件
(2)持久化工具,封裝了和數(shù)據(jù)庫訪問的細(xì)節(jié),可以讓程序開發(fā)人員更加關(guān)注于業(yè)務(wù)邏輯的處理
(3)ORM工具,將面向?qū)ο蟮膉ava同關(guān)系型數(shù)據(jù)庫進(jìn)行映射,可以實(shí)現(xiàn)內(nèi)存中的數(shù)據(jù)和數(shù)據(jù)庫中的數(shù)據(jù)雙向同步更新
1. 對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。
2. Hibernate是一個基于JDBC的主流持久化框架,是一個優(yōu)秀的ORM實(shí)現(xiàn)。他很大程度的簡化DAO層的編碼工作
3. hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。
4. hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。
看了“java web知識點(diǎn)總結(jié)”的還看了:
1.Java與Java web的區(qū)別
2.公共基礎(chǔ)知識點(diǎn)總結(jié)
3.管理學(xué)知識點(diǎn)總結(jié)
4.java培訓(xùn)心得體會(7篇)
5.高二地理復(fù)習(xí)知識點(diǎn)總結(jié)
