国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
spring+hibernate整合
spring+hibernate整合(2009-06-04 19:41:59)
spring2.5+hibernate3.3
所需jar文件
hibernate核心安裝包下的
hibernate3.jar
lib\required\*.jar
lib\optional\ehcache-1.2.2.jar   //二級緩存
hibernate注解安裝包下的
lib\test\slf4j-log4j12.jar
spring安裝包下的
dist\spring.jar
dist\modules\spring-webmvc-struts.jar   整合stuts時用到
lib\jakarta-commons\commons-logging.jar  commons-dbcp.jar、commons-pool.jar(hibernate要用到數(shù)據(jù)庫連接池,采用此數(shù)據(jù)源,導(dǎo)入這兩個jar)
lib\aspectj\aspectjweaver.jar、aspectjrt.jar
lib\cglib\cglib-nodep-2.1_3.jar
lib\j2ee\common-annotations.jar
lib\log4j\log4j-1.2.15.jar
struts
下載struts-1.3.8-lib.zip,需要使用到解壓目錄下的所有jar,
把jstl-1.0.2.jar和standard-1.0.2.jar更換為1.1版本。
spring中已經(jīng)存在一個antlr-2.7.6.jar,所以把struts中的antlr-2.7.2.jar刪除,
避免jar沖突
數(shù)據(jù)庫驅(qū)動jar
------------------------------------------
把sessionFacory交給spring管理
在xml文件 中加入
<!-- 配置sessionFactory-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> //用spring包裝的sessionFactory來管理session
<property name="dataSource" ref="dataSource"/> //配置數(shù)據(jù)源,引用前面已配置好的數(shù)據(jù)源
<property name="mappingResources">
<list>
<value>cn/itcast/bean/Person.hbm.xml</value>//orm映射配置文件,可配置多個
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
hibernate.hbm2ddl.auto = update
hibernate.show_sql = false
hibernate.format_sql = false
</value>
</property>
</bean>
<!--  配置事務(wù)管理,使用spring提供的針對hibernate的事務(wù)管理器-->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置事務(wù)采用的聲明方式,這里使用注解方式..這里要配置一下事務(wù)管理器,采用前面配置好的事務(wù)管理器-->
<tx:annotation-driven transaction-manager="txManager"/>
-------------------------------------------------------------
實例化spring容器
通過配置web.xml的listener
<!--指定spring的配置文件,默認從web目錄尋找配置文件,可以通過spring提供的classpath前綴指定從類路徑下尋找-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
</context-param>
<!-- 對spring容器進行實例化-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
-------------------------------------------
集成struts1.3,加載struts1.3/lib下的所有.jar,與spring重復(fù)的那個不要,如前所述
在Action中要調(diào)用 spring中實例bean,因此要先得到spring容器
如果action沒有交給spring管理時,通過下面語句獲取spring容器實例
WebApplicationContext ctx=WebApplicatinContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
spring容器實例呢,是通過web.xml中的listener初始化而來的,放到了application作用范圍,存到了servletContext中
//////
把action交給spring管理后,可以使用依賴注入在action中注入業(yè)務(wù)層的bean。確保action的path屬性值與bean的名稱相同。
<action path="/person/list" ..>
</action>
spring配置
<bean name="/person/list" class="cn.itcast.web.action.PersonAction"/>
在struts配置文件中添加進spring的請求控制器,該請求控制器會先根據(jù)action的path屬性值到spring容器中
尋找跟該屬性值同名的bean。如果尋找到即使用該bean處理用戶請求
<controller>
<set-property property="processorClass">
------------------------------------------------------------
配置hibernate的二級緩存
<!--設(shè)置是否起用二級緩存-->
hibernate.cache.use_second_level_cache=true
<!--設(shè)置是否起用查詢緩存,因查詢緩存使用效率并不高,一般不用開啟-->
hibernate.cache.use_query_cache=false
<!--設(shè)置緩存產(chǎn)品的驅(qū)動類,采用EhCacheProvider產(chǎn)品要用到lib\optional\ehcache-1.2.3.jar-->
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
//////////////
使用EhCache,要配置其ehcache.xml文件(放在類路徑下)
<ehcache>
<diskStore path="D:\cache"/>
<defaultCache maxElementsInMemory="1000" etemal="false" overflowToDisk="true"
timeToIdleSeconds="120"
timeToLiveSeconds="180"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="60"/>
<!--針對cn.itcast.bean.Person這個區(qū)域名設(shè)置,區(qū)域名對應(yīng)與Person.hbm.xml中的區(qū)域名設(shè)置相同-->
<cache name="cn.itcast.bean.Person" maxElementsInMemory="100" eternal="false"
overflowToDisk="true" timeToIdleSeconds="300" timeToLiveSeconds="600" diskPersistent="false"/>
</ehcache>
path 設(shè)置緩存在硬盤上的路徑
defaultCache 節(jié)點為缺省的緩存策略
maxElementsInMemory內(nèi)存中最大允許存在的對象數(shù)量
eternal設(shè)置緩存中的對象是否永遠不過期
overflowToDisk是否把溢出的對象存放到硬盤上
timeToIdleSeconds 指定緩存對象空閑多長時間就過期,過期的對象會被清除掉
timeToLiveSeconds 指定緩存對象總的存活時間
diskPersistent 當(dāng)jvm結(jié)束時是否持久化對象
diskExpiryThreadIntervalSeconds 指定專門用于清除過期對象的監(jiān)聽線程的輪詢時間
///////////////////
在Person.hbm.xml中配置緩存策略
<cache usage="read-write" region="cn.itcast.bean.Person"/>
usage設(shè)置緩存策略,read-write是讀寫策略,當(dāng)并發(fā)訪問時,一個在寫的時候,另一個只能讀
region緩存區(qū)域名,在區(qū)域里存放緩存對象,定義為實體類的全稱
/////////////////
設(shè)置了緩存之后,當(dāng)它第一次獲取到記錄后,第二次再去獲取這條記錄,它會從內(nèi)存里獲取,而不是從數(shù)據(jù)庫獲取
-----------------------------------------------------------------------------------------------------------------
spring解決struts1.3亂碼問題
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-------------------------------------------
使用spring解決hibernate因session關(guān)閉導(dǎo)致的延遲加載例外問題
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-----------------------------------------------------------------
spring2.5+JPA+struts1.3整合
這里JPA實現(xiàn)采用hibernate
hibernate核心包(8個文件)
hibernate3.jar
lib\bytecode\cglib\hibernate-cglib-repack-2.1_3.jar
lib\required\*.jar
hibernate注解包(3個文件) hibernate-annotations-3.4.0.GA
hibernate-annotations.jar
lib\ejb3-persistence.jar、hibernate-commons-annotations.jar
hibernate針對JPA實現(xiàn)包(3個文件) hibernate-entitymanager-3.4.0.GA
hibernate-entitymanager.jar
lib\test\log4j.jar、slf4j-log4j12.jar
+++++++++++++++++++++
spring安裝包下的
dist\spring.jar
dist\modules\spring-webmvc-struts.jar   整合stuts時用到
lib\jakarta-commons\commons-logging.jar  commons-dbcp.jar、commons-pool.jar(hibernate要用到數(shù)據(jù)庫連接池,采用此數(shù)據(jù)源,導(dǎo)入這兩個jar)
lib\aspectj\aspectjweaver.jar、aspectjrt.jar
lib\cglib\cglib-nodep-2.1_3.jar
lib\j2ee\common-annotations.jar
lib\log4j\log4j-1.2.15.jar
+++++++++++++++++++++++++
struts1.3同上
在web.xml文件中添加
<servlet>
<servlet-name>struts</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name> <!-- 指定struts配置文件所在路徑 -->
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>struts</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
++++++++++++++++++++++++++++++++++++++++++
將struts-config.xml拷貝到WEB-INF目錄下
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"
<struts-config>
<controller><controller>  <!-- spring提供的,用于管理 structs請求的action,控制器根據(jù)當(dāng)前的action的path尋找bean,用bean對應(yīng)的action處理請求 -->
<set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>  <!--配置spring控制器-->
</struts-config>
++++++++++++++++++++++++++++++++++++++++++++++++++++
spring解決struts1.3亂碼問題
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+++++++++++++++++++++++++++
使用spring解決JPA因EntityManager關(guān)閉導(dǎo)致的延遲加載例外問題
<filter>
<filter-name>SpringEntityManagerViewFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SpringEntityManagerViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+++++++++++++++++++++++++++++++
應(yīng)注意的是:
struts1.3的Action都是單例模式,存在線程安全的問題,因此可以在spring配置文件中
把涉及到線程安全的action配上scope="prototype"
--------------------------------------------------------------------------------------------------------------
spring2.5+hibernate3.3+struts2整合開發(fā)
struts2
使用到struts2的lib目錄下所有不帶-plugin結(jié)尾的jar文件,antlr-2.7.2.jar也不要(spring已自帶)
但除了struts2-spring-plugin-2.0.11.1.jar例外
spring
同前面所講,但是不用加dist\modules\spring-webmvc-struts.jar  這個文件了
hibernate
同前面所講。
數(shù)據(jù)庫驅(qū)動.jar
++++++++++++++++++++++
web.xml配置
用來實例化spring容器,配置listener
引入struts2控制器 配置filter
使用spring解決JPA因EntityManager關(guān)閉導(dǎo)致的延遲加載例外問題 配置filter
struts2.xml文件配置
<struts>
<!--指定web應(yīng)用的默認編碼集,相當(dāng)于調(diào)用HttpServletRequest的setCharacterEncoding方法-->
<constant name="struts.i18n.encoding" value="utf-8"/>
<!--指定struts2處理的請求后綴,默認為.action,如果要指定多個后綴,則多個后綴以英文的逗號(,)隔開-->
<constant name="struts.action.extension" value="do"/>
<!--設(shè)置瀏覽器是否緩存靜態(tài)內(nèi)容,默認值為true(生產(chǎn)環(huán)境下用),開發(fā)階段最好關(guān)閉-->
<constant name="struts.seve.static.browserCache" value="false"/>
<!--當(dāng)struts的配置文件修改后,系統(tǒng)是否自動重新加載該文件,默認值為false(生產(chǎn)環(huán)境下用),開發(fā)階段最好設(shè)為true-->
<constant name="struts.configuration.xml.reload" value="true"/>
<!--開發(fā)模式下使用,這樣可以打印更詳細的錯誤信息-->
<constant name="struts.devMode" value="true">
<!--默認的視圖主題-->
<constant name="struts.ui.theme" value="simple"/>
<!--與spring集成,由spring生成action實例-->
<constant name="struts.objectFactory" value="spring"/>
<package name="person" namespace="/person" extends="struts-default">
<global-results>
<result name="message">/WEB-INF/page/message.jsp</result>
</global-results>
<action name="action_*" class="personList" method="{1}">
<result name="list">/WEB-INF/page/persons.jsp</result>
<result name="add">/WEBINF/page/add_person.jsp</result>
</action>
</package>
</struts>
這里的personList是對應(yīng)spring配置beans.xml里的bean配置
<bean id="personList" class="com.feihu.action.PersonAction">
++++++++++++++++++
請求的執(zhí)行過程是,客戶發(fā)送request請求,經(jīng)總控制器進入strust2
找到請求對應(yīng)的class一看,是引用的spring里的對應(yīng)的bean,于是轉(zhuǎn)
到spring容器找到相應(yīng)的Action實例,進行處理.
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
eclipse搭建SSH框架詳解
struts2.1.8 + spring2.5.6 + hibernate3.3.2整合的...
使用MyEclipse部署SSH框架
Struts2 Spring Hibernate搭建全解!
Java程序員從笨鳥到菜鳥之(八十二)細談Spring(十一)深入理解spring+struts2整合(附源碼)
20081013-Struts 2 + Spring 2.0 + Hibernate 3.0整合筆記
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服