解讀applicationcontext.xml_JSP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:jsp如何獲取瀏覽者真實IP地址方法我們知道在JSP里,獲取 網(wǎng)頁 客戶端的IP地址的方法是:request.getRemoteAddr(),這種方法在大部分情況下都是有效的。但是在通過了Apache,Squid等反向代理軟件就不能獲取到客戶端的真實IP地址了。如果使用了反向代理軟件,用request.getRemoteAddr()方法獲取
在看<<項目實踐精解:基于Struts-Spring-Hibernate的Java應(yīng)用開發(fā)>> 過程中對里面的一些概念不熟悉,在網(wǎng)上搜搜資料,解釋一下applicationcontext.xm
我們以項目中的訂單Order為例簡要說明一下Spring與Hibernate的集成。關(guān)于如何使用Hibernate來對數(shù)據(jù)庫表做映射,我們在前面已經(jīng)做了介紹,這里我們關(guān)心的是如何配置Spring,使它能管理Hibernate。其實,只要在Spring的配置文件(我們這里是applicationContext.xml)中配置一個叫做sessionFactory的bean,Spring就可以和Hibernate聯(lián)系起來了。
<bean id="sessionFactory" class="org.springframework.orm.hibernate.Local SessionFactoryBean">
<property name="configLocation">
<value>com/ascent/bean/hibernate.cfg.xml</value>
</property>
</bean>
這樣,Spring和Hibernate的第一步整合就完成了,現(xiàn)在到了關(guān)鍵的地方——如何讓Spring和Hibernate雙劍合璧來實現(xiàn)業(yè)務(wù)邏輯?
還是在applicationContext.xml文件中先做一個配置。
<bean id="transactionManager" class="org.springframework.orm.hibernate. HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
在上面你大概可以感覺到Spring給我們帶來的好處了,Spring的IoC模式可以統(tǒng)一管理各層,而又使各層松散耦合在一起,使各層之間實現(xiàn)最大的解耦性,這也是Web架構(gòu)一向的追求。
但是,Spring帶來的好處還不止于此,除了IoC還有AOP,Spring可以運用AOP來實現(xiàn)很多功能,最常用的就是事務(wù)處理。這里我們用了業(yè)務(wù)服務(wù)(business service)層和數(shù)據(jù)存取對象(Data Access Object)層,在業(yè)務(wù)服務(wù)層我們增加事務(wù)處理,數(shù)據(jù)存取對象層負責(zé)數(shù)據(jù)讀寫。
首先,組裝配置好Service Beans。
<bean id="orderService" class="org.springframework.transaction.interceptor. TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="target">
<ref local="orderTarget"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="find*">PROPAGATION_REQUIRED,readOnly,-OrderException</prop>
<prop key="save*">PROPAGATION_REQUIRED,-OrderException,-OrderMinimum AmountException</prop>
</props>
</property>
</bean>
之后,需要把業(yè)務(wù)服務(wù)對象和數(shù)據(jù)存取對象也組裝起來,并把這些對象配到一個事務(wù)管理器(transaction manager)里。
在Spring中的配置信息。
<bean id="orderTarget" class="com.ascent.business.service.OrderServiceImpl">
<property name="orderDAO">
<ref local="orderDAO"/>
</property>
</bean>
<bean id="orderDAO" class="com.ascent.dao.hibernate.OrderHibernateDAO">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
圖6-10是項目對象搭建的一個提綱。從中可以看出,每個對象都聯(lián)系著Spring,并且能通過Spring注入到其他對象。把它與Spring的配置文件比較,觀察他們之間的關(guān)系。
Spring就是這樣基于配置文件,將各個Bean搭建在一起的。
這里我們使用一個TransactionProxyFactoryBean,它定義了一個setTransactionManager(),這個對象很有用,它能很方便地處理你申明的Service Object中的事物,你可以通過transaction Attributes屬性來定義怎樣處理。
TransactionProxyFactoryBean還有個setter,這會被業(yè)務(wù)服務(wù)對象(orderTarget)引用,orderTarget定義了業(yè)務(wù)服務(wù)層,并且它還有個屬性,由setOrderDAO()引用這個屬性。
還有一點要注意,bean可以用兩種方式創(chuàng)造,這些都在單例模式(Sington)和原型模式(propotype)中定義了。默認的方式是singleton,這意味著共享的實例將被束縛,而原型模式是在Spring用到bean的時候允許新建實例的。當(dāng)每個用戶需要得到他們自己Bean的Copy時,你應(yīng)該僅使用prototype模式。
這樣,Spring和Hibernate就完成了對業(yè)務(wù)對象的管理。
分享:解讀J2EE實現(xiàn)大文件上傳辦法(代碼)這個代碼主要利用flash進行客戶端控制,用ServletFileUpload類進行文件上傳,具有一定的參考價值,代碼很簡單,只做一處說明。 代碼:UploadFilesAction.java中需要注意的地方 上傳過程中,看到了么,有綠色的進度條顯示,挺漂亮 最終在我的E盤upload目錄里找到了
相關(guān)JSP教程:
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實現(xiàn)
- 網(wǎng)頁模板:關(guān)于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項目中連接Access數(shù)據(jù)庫的配置方法
- JDBC連接Access數(shù)據(jù)庫的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對路徑/虛擬路徑
- (jsp/html)網(wǎng)頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對路徑下的圖片解決方法
- 相關(guān)鏈接:
- 教程說明:
JSP教程-解讀applicationcontext.xml
。