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

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&amp;useUnicode=true&amp;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要自己建了。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值