日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Struts2 Hibernate Spring 整合的基本流程和步骤及其相关配置细节

發(fā)布時間:2025/6/15 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts2 Hibernate Spring 整合的基本流程和步骤及其相关配置细节 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

配置Hibernate環(huán)境


1、 把Hibernate的相關(guān)jar包復制到lib目錄下:

① HIBERNATE_HOME/lib 下的相關(guān)的依賴的第三方包
② HIBERNATE_HOME/hibernate3.jar Hibernate的核心實現(xiàn)
③ 引入入相關(guān)的JDBC驅(qū)動


2、 在src目錄下創(chuàng)建相關(guān)的配置文件:hibernate.cfg.xml

可以從以下目錄中拷貝過來修改:

HIBERNATE_HOME \etc\ hibernate.properties 舊版本的Hibernate實用的核心配置文件,這個文件列舉了相關(guān)的Hibernate配置,在配置文件時可以參考該文件。
HIBERNATE_HOME \etc\ hibernate.cfg.xml 如果存在這個文件則會覆蓋上面的properties文件
HIBERNATE_HOME\hibernate-3.2\etc 日志記錄文件


3、 編寫hibernate.cfg.xml文件:

<hibernate-configuration><session-factory><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/數(shù)據(jù)庫名稱</property><property name="hibernate.connection.username">用戶</property><property name="hibernate.connection.password">密碼</property><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><property name="hibernate.show_sql">true</property><!--<property name="hibernate.format_sql">true</property>--> <mapping resource="com/test/User.hbm.xml"/></session-factory> </hibernate-configuration>


4、 編寫*.hbm.xml等實體映射文件

<hibernate-mapping><class name="com.test.User"><id name="id"><generator class="uuid"/></id><property name="name" column=”user_name”/><property name="password"/></class> </hibernate-mapping>

創(chuàng)建完映射文件之后,記得把hbm.xml文件添加到hibernate.cfg.xml文件中

<mapping resource="com/test/User.hbm.xml"/>(在session-factory標簽里property標簽后)


5、 生成數(shù)據(jù)庫

創(chuàng)建hibernate.cfg.xml中指定的數(shù)據(jù)庫
可以使用SchemaExport生成相關(guān)表

Configuration cfg = new Configuration().configure(); SchemaExport export = new SchemaExport(cfg); export.create(true, true);

也可以在hibernate.cfg.xml中進行相關(guān)的配置使之自動生成

<property name="hibernate.hbm2ddl.auto">create</property> 配置Spring環(huán)境:


1、 把spring相關(guān)的jar包復制到lib目錄中

SPRING_HOME\dist\spring.jar spring核心jar包
SPRING_HOME \lib\log4j\log4j-1.2.14.jar 記錄日志
SPRING_HOME \lib\jakarta-commons\commons-logging.jar


2、 在WEB-INF下建立applicationContext.xml

可從SPRING_HOME\ samples\jpetstore\war\WEB-INF\目錄下拷貝applicationContext.xml


3、 提供log4j.properties配置文件

可從下面目錄中拷貝:

G:\software_programming\Java\SSH\spring\spring-framework-2.0.8-with-dependencies\spring-framework-2.0.8\samples\jpetstore\war\WEB-INF\ log4j.properties


4、把初始化Hibernate的SessionFactory接口交給spring管理

<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation" value="classpath:hibernate.cfg.xml"></property> </bean>

注意:這里的數(shù)據(jù)庫相關(guān)配置信息是寫到了hibernate.cfg.xml文件中,也可以通過在spring配置jdbc datasource對數(shù)據(jù)庫進行管理,然后通過datasource注入sessionFactory的方式來創(chuàng)建會話工廠。


5、配置spring為hibernate配置的數(shù)據(jù)庫訪問操作的封裝類hibernateTemplate

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" /> </bean>


6、在applicationContext.xml文件中配置數(shù)據(jù)庫的事務(wù)(也可以使用AOP進行配置)

<!-- 事務(wù)攔截器bean需要依賴注入一個事務(wù)管理器 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><!-- 設(shè)置事務(wù)傳播特性,對應(yīng)于AOP中的 <tx:advice /> --><bean id="transactionInterceptor"class="org.springframework.transaction.interceptor.TransactionInterceptor"><property name="transactionManager"><ref bean="transactionManager" /></property><property name="transactionAttributes"><props><prop key="get*">PROPAGATION_REQUIRED, readOnly</prop><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean> <!-- 定義BeanNameAutoProxyCreator,配置哪些類和哪些方法使用事務(wù)對應(yīng)于AOP中的 <aop:pointcut /> --> <beanclass="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"><!-- 指定對滿足哪些bean name的bean自動生成業(yè)務(wù)代理 --><property name="beanNames"><!-- 下面是所有需要自動創(chuàng)建事務(wù)代理的bean--> <list><value>userDAO</value> <value>provinceDAO</value><value>cityDAO</value><value>sexDAO</value><value>statusDAO</value></list><!-- 此處可增加其他需要自動創(chuàng)建事務(wù)代理的bean--></property><property name="interceptorNames"><!-- 下面定義BeanNameAutoProxyCreator所需的事務(wù)攔截器--> <list><value>transactionInterceptor</value><!-- 此處可增加其他新的Interceptor --></list></property></bean>


7、在applicationContext.xml中配置相關(guān)的數(shù)據(jù)訪問層Dao,注意創(chuàng)建時要給spring提供一個借口,方便其代理

<bean id="userDAO" class="com.pzx.dao.UserDAOImpl"><constructor-arg><ref bean="hibernateTemplate" /></constructor-arg> </bean>


8、在applicationContext.xml中配置相關(guān)的業(yè)務(wù)邏輯層Service,其構(gòu)造函數(shù)中的參數(shù)指向器數(shù)據(jù)訪問層bean

<bean id="userService" class="net.blogjava.nokiaguy.kxw.service.UserServiceImpl"><constructor-arg><ref bean="userDAO" /></constructor-arg> </bean>


9、在web.xml中配置如下信息

<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml,applicationContext-*.xml</param-value> </context-param>

其中的param-value根據(jù)自己的applicationContext.xml存放位置決定。

配置Struts2環(huán)境


1、 把相關(guān)jar文件拷貝到項目中

STRUTS_HOME /apps/struts2-blank-2.1.8/WEB-INF/lib 目錄下的相關(guān)jar文件
STRUTS_HOME/lib/struts2-spring-plugin-2.1.8.jar


2、 配置web.xml文件

可以從STRUTS_HOME /apps/struts2-blank-2.1.8/WEB-INF/web.xml文件中拷貝:

<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern> </filter-mapping>

另外可以這樣配置字符編碼過濾器:

<filter><filter-name>encodingFilter</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><init-param><param-name>forceEncoding</param-name><param-value>true </param-value></init-param> </filter> <filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>*.action </url-pattern> </filter-mapping>


3、 在struts.xml中配置項攔截器

<interceptors><interceptor-stack name="excludeParamsStack"><interceptor-ref name="defaultStack"><param name="params.excludeParams">ext-comp-.*</param></interceptor-ref></interceptor-stack></interceptors>

另外在struts.xml文件中常配置的兩個常量:

<constant name="struts.devMode" value="true" /> <constant name="struts.i18n.encoding" value="utf-8"></constant>


4、 在struts.xml中配置相關(guān)的Action

<action name="*-*" class="com.exam.student.actions.{1}Action" method="{2}"><result>/{1}-{2}.jsp</result><result name="input">/WEB-INF/exam/{1}-{2}.jsp</result><!-- <exception-mapping result="error" exception="java.sql.SQLException" /> <result name="error">/error.jsp</result> --> </action>

總結(jié)

以上是生活随笔為你收集整理的Struts2 Hibernate Spring 整合的基本流程和步骤及其相关配置细节的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。