struts+spring+hibernate

为了方便自己在以后开发的时候查询资料,把自己下午搭的一个简单的平台写出来.
还在继续完善中.
一.spring+struts整合


   1.采用委托的方式:
     步骤:
        <1>在web.xml中配置(方便服务器启动的时候加载配置文件,在这里没有采用插件的形式)
  <listener>
      <listener-class>
         org.springframework.web.context.ContextLoaderListener
      </listener-class>
  </listener>
  <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/config/spring/*.xml</param-value>
  </context-param>
         ps:固定写法(如果在spring下面有文件可以写成/spring/**/*.xml)

        <2>在struts-config.xml中配置代理类
           <struts-config>
              <action-mappings >
                <action path="/test" type="org.springframework.web.struts.DelegatingActionProxy" >
                <forward name="index" path="/index.jsp"></forward>
              </action>
           </action-mappings>
           </struts-config>

        ps:其中type指定的是spring的代理类

       <3>在spring中配置
        <bean name="/test" class="com.yourcompany.struts.action.TestAction"></bean>
        ps:name的名称和path是一致的,class表示具体的action所在位置

二.spring+struts+hibernate整合.
   1.在applicationContext.xml中加上
      <bean id="datasource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@192.168.1.120:1521:empolder">
</property>
<property name="username" value="sa"></property>
<property name="password" value="sa"></property>
</bean>
<bean id="sessionfactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="datasource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
</props>
</property>
<property name="mappingLocations">
   <list>
      <value>classpath*:com/persistence/*.hbm.xml</value>
   </list>
</property>
</bean>
<bean id="TestDAO" class="com.persistence.TestDAO">
<property name="sessionFactory">
<ref bean="sessionfactory" />
</property>
</bean>
<bean name="/test" class="com.yourcompany.struts.action.TestAction">
    <property name="td">
        <ref bean="TestDAO"/>
    </property>
    </bean>

   2.配置相关的实体类和hbm配置文件,并建立dao层com.persistence.TestDAO

   3.把dao的相关实例注入action中,并在action中调用dao中相关数据库操作方法
     <1>set方法注入(需要在TestAction中有相关的set方法)
        <bean name="/test" class="com.yourcompany.struts.action.TestAction">
<!-- 
    <property name="td">
        <ref bean="TestDAO"/>
    </property>
   -->
         </bean>
      <2>构造器注入(需求有相关的构造方法)
       <bean name="/test" class="com.yourcompany.struts.action.TestAction">
       <constructor-arg index="0">
      <ref bean="TestDAO"/>
   </constructor-arg>
        </bean>

  注:在项目中遇到org/apache/commons/pool/impl/GenericObjectPool异常
  解决办法:
     解决:
   到这里http://commons.apache.org/downloads/download_pool.cgi下载包,然后,把里面的commons-pool-x.jar复制到myEclipse的Referenced Libraries下.
    
  


  

你可能感兴趣的:(DAO,spring,Hibernate,xml,struts)