您的位置:首页 > 编程语言 > Java开发

spring+struts+hibernate 的整合,采用proxool连接池

2009-09-19 22:58 411 查看
1。要加入的库有Spring 1.2 web,spring 1.2ORM/DAO/Hibernate,proxool的三个包和数据库的驱动。

2。Spring整合struts采集代理的方式完成。配置如下:

a.struts-config.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="com.hefte.struts.form.LoginForm" />

</form-beans>

<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="loginForm"
input="login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">

<forward name="err" path="/err.jsp" />
<forward name="ok" path="/ok.jsp" />
</action>
<!-- 注意type,这个是spring整合strut的一种代理模式 -->
</action-mappings>

<message-resources parameter="com.hefte.struts.ApplicationResources" />
<!-- 这是struts在spring中运行所需要的环境 -->
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>
<!-- 这里覆盖了struts中的requestProcessor类,这个类是Struts的核心ActionServlet所调用的 -->
<!-- <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
-->
</struts-config>

2.在applicationContext.xml中加入actiion对应的bean

<bean name="/login" class="com.hefte.struts.action.LoginAction">
<property name="loginBean" ref="LoginBean" />
</bean>

<bean id="LoginBean" class="com.hefte.LoginBean" >
<property name="userDao" ref="UserDAO"></property>
</bean>

到这里它们两个的配置部分就完成了。这里我加了一个LoginBean,这个看情况,需不需要了。

接下来是整合hibernate。这里要在hibernate中应用到proxool连接池,你也可以不用。不用的话只是改动一下连接的部分,

其它的都是一样的。

a.proxool.xml配置

<?xml version="1.0" encoding="utf-8"?>
<something-else-entirely>
<proxool>
<alias>proxoolPool</alias>
<driver-url>
jdbc:mysql://localhost:5188/message?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
</driver-url>
<driver-class>
com.mysql.jdbc.Driver
</driver-class>
<driver-properties>
<property name="user" value="xoops_root" />
<property name="password" value="654321" />
</driver-properties>
<house-keeping-test-sql>select getdate()</house-keeping-test-sql>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!--<maximum-new-connections>20</maximum-new-connections>-->
<prototype-count>5</prototype-count>
<maximum-connection-count>100</maximum-connection-count>
<minimum-connection-count>10</minimum-connection-count>
<simultaneous-build-throttle>200</simultaneous-build-throttle>
<maximum-connection-lifetime>300000</maximum-connection-lifetime>
<statistics>1m,15m,1d</statistics>
<statistics-log-level>ERROR</statistics-log-level>
<trace>true</trace>
</proxool>
</something-else-entirely>
好像没什么好讲的,一个proxool的配置部份。

b.来看一下applicationContext.xml这里给出一个完整的了。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="LoginBean" class="com.hefte.LoginBean" >
<property name="userDao" ref="UserDAO"></property>
</bean>

<bean id="MyBeanPostProcessor"
class="com.hefte.MyBeanPostProcessor" />
<bean name="/login" class="com.hefte.struts.action.LoginAction">
<property name="loginBean" ref="LoginBean" />
</bean>
<bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="hibernateProperties">
<props>

<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">
true
</prop>
<prop key="connection.provider_class">
org.hibernate.connection.ProxoolConnectionProvider
</prop>
<prop key="hibernate.proxool.xml">Proxool.xml</prop>

<!--注意下面的proxoolPool这个化名必须跟proxool.xml中的名字相同( <alias></alias>)-->
<prop key="hibernate.proxool.pool_alias">proxoolPool</prop>
</props>
</property>
<!-- 配置连接池 结束 -->

<property name="mappingResources">
<list>
<value>Message.hbm.xml</value>
<value>User.hbm.xml</value></list>
</property>
</bean>

<bean id="MessageDAO" class="com.hefte.dao.MessageDAO">
<property name="sessionFactory">
<ref bean="SessionFactory" />
</property>
</bean>
<bean id="UserDAO" class="com.hefte.dao.UserDAO">
<property name="sessionFactory">
<ref bean="SessionFactory" />
</property>
</bean></beans>
到这里他们的配置就完了。其中生成dao和mappingResources,可以用hibernate来自动完成。用完和平时的一样。只是记得选用spring的配置文件就OK了,但是SessionFactory要自己建了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: