SSH集成配置总结

Struts1.x+Spring2.5+Hibernate3.2集成时各配置文件配置方法:

1、web.xml配置文件应有如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
  <!-- 在这里配置服务启动时加载spring配置文件applicationContext*.xml -->
  <!-- spring Bean上下文监听器使用以下context-param获得spring配置文件的路径集合 -->
  <context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>/WEB-INF/classes/application*.xml</param-value>
  </context-param>
 
  <!-- 配置OpenSessionInView过滤器(作用让hibernate的session不至过早关闭,使其作用域在一个请求范围内) -->
  <filter>
   <filter-name>OpenSessionInViewFilter</filter-name>
   <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  </filter>
 
 
  <!-- 配置Spring中的编码过滤器(防止乱码) -->
  <filter>
   <filter-name>CharacterEncodingFilter</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等 -->
  <!-- 员工登录filter -->
  <filter>
   <filter-name>AdminOnlineFilter</filter-name>
   <filter-class>com.xasxt.ssh.web.filter.AdminOnlineFilter</filter-class>
  </filter>
  <!-- 客户登录Filter -->
  <filter>
   <filter-name>ClientOnlineFilter</filter-name>
   <filter-class>com.xasxt.ssh.web.filter.ClientOnlineFilter</filter-class>
  </filter>
  <!-- 配置分页过滤器 -->
  <filter>
   <filter-name>PageFilter</filter-name>
   <filter-class>com.xasxt.ssh.web.filter.PageFilter</filter-class>
  </filter>
  <filter-mapping>
   <filter-name>PageFilter</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
   <filter-name>ClientOnlineFilter</filter-name>
   <url-pattern>/client/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
   <filter-name>AdminOnlineFilter</filter-name>
   <url-pattern>/admin/*</url-pattern>
  </filter-mapping>
   <filter-mapping>
   <filter-name>OpenSessionInViewFilter</filter-name>
   <url-pattern>*.do</url-pattern>
  </filter-mapping>
  <filter-mapping>
   <filter-name>OpenSessionInViewFilter</filter-name>
   <url-pattern>*.jsp</url-pattern>
  </filter-mapping>
  <filter-mapping>
   <filter-name>CharacterEncodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
 
   <!-- spring Bean上下文监听器,用于加载Beanfactory实例到ServletContext中 -->
  <listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!-- Standard Action Servlet Configuration -->

  <!-- Struts1.x中的servlet配置-->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-admin.xml,/WEB-INF/struts-client.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
 </servlet>

 <!-- 配置DWR -->
 <servlet>
     <servlet-name>dwr-invoker</servlet-name>
     <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
 
     <init-param>
       <param-name>debug</param-name>
       <param-value>true</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
    </servlet>
 
  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

 

<!-- 配置错误页面 -->
 
  <error-page>
    <error-code>401</error-code>
    <location>/401.jsp</location>
  </error-page>
  <error-page>
    <error-code>403</error-code>
    <location>/403.jsp</location>
  </error-page>
  <error-page>
    <error-code>404</error-code>
    <location>/404.jsp</location>
  </error-page>
  <error-page>
    <error-code>500</error-code>
    <location>/500.jsp</location>
  </error-page>


  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

</web-app>


2、Spring配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xsi:schemaLocation="
   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
  <!-- 事务配置开始 --> 

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

 <!--配置事务管理器  -->
 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
   <ref bean="sessionFactory"/>
  </property>
 </bean>
 
 <!--配置事务管理的特性(隔离级别,传播特性...)  -->
 <tx:advice id="transAdvice" transaction-manager="transactionManager">
  <tx:attributes>
   <tx:method name="find*" read-only="true"/>
   <tx:method name="add*" propagation="REQUIRED"/>
   <tx:method name="del*" propagation="REQUIRED"/>
   <tx:method name="update*" propagation="REQUIRED"/>
   <tx:method name="*" propagation="REQUIRED"/>
  </tx:attributes>
 </tx:advice>
 
 <!-- 配置切面,把事务管理advice和切入点组到一起 -->
 <aop:config>
  <aop:pointcut expression="execution(* com.xasxt.ssh.manager.impl.*.*(..))" id="managerpc"/>
  <aop:advisor advice-ref="transAdvice" pointcut-ref="managerpc"/>
 </aop:config>

  <!-- 事务配置结束 -->

 

如果我们不用上面绿色发光字体的那部分内容的话,我们还可以用下面的方法配置数据库层管理(不用hibernate.cfg.xml)

<!--
 <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://localhost:3306/sshonline"/>
  <property name="username" value="root"/>
  <property name="password" value="tpfpcwl"/>
 </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.MySQLDialect
    </prop>
   </props>
  </property>
  <property name="mappingResources">
   <list>
    <value>com/fei/ssh/entity/Client.hbm.xml</value>
    <value>com/fei/ssh/entity/CommonProp.hbm.xml</value>
    <value>com/fei/ssh/entity/Employee.hbm.xml</value>
    <value>com/fei/ssh/entity/Question.hbm.xml</value>
    <value>com/fei/ssh/entity/QuestionOption.hbm.xml</value>
    <value>com/fei/ssh/entity/SurveyPlan.hbm.xml</value>
    <value>com/fei/ssh/entity/SurveyQuestion.hbm.xml</value>
    <value>com/fei/ssh/entity/SurveyReport.hbm.xml</value>
    <value>com/fei/ssh/entity/SurveyResult.hbm.xml</value>
    <value>com/fei/ssh/entity/SendSurvey.hbm.xml</value>
   </list>
  </property>
 </bean>
   -->
</beans>

 

下面是其它的一些配置(可有可无)

 

<!-- 配置注解注入  -->

<aop:aspectj-autoproxy/>


 <!-- 日志记录配置 -->
 <bean id="logAdvice" class="com.fei.ssh.log.LogAdvice"></bean>
 
 <!-- 邮件发送的配置方式 --> 
 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
  <property name="defaultEncoding" value="utf-8" />
  <property name="host" value="smtp.sogou.com" />
  <property name="javaMailProperties">
   <props>
    <!-- 如果要使用用户名和密码验证,这一步需要  -->
    <prop key="mail.smtp.auth">true</prop>
   </props>
  </property>
  <property name="username" value="tests0901"/>
  <property name="password" value="tests0901"/>
 </bean>

 <bean id="mailUtil" class="com.fei.ssh.mail.MailUtil">
  <property name="mail" ref="mailSender"></property>
 </bean>

 

<!-- 自己bean注入配置方式 -->

<!--
 <bean id="userDAO" class="com.fei.ssh.dao.UserDAO">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>
 <bean id="userBiz" class="com.fei.ssh.biz.UserBiz">
  <property name="userDao">
   <ref bean="userDAO" />
  </property>
 </bean>
  -->

 

3、hibernate的配置:

如果不用Spring管理hibernate的配置,我们就需要有下面的hibernate.cfg.xml文件的配置:

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
 <session-factory>
     <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
     <property name="connection.url">jdbc:mysql://localhost:3306/hql_info?createDatabaseIfNotExist=true</property>
     <property name="connection.username">root</property>
     <property name="connection.password">root</property>
     <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
     <property name="hbm2ddl.auto">update</property>
     <property name="show_sql">true</property>
  
  <!-- 配置二级缓存 -->
  <property name="cache.use_second_level_cache">true</property>
  <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

  <!-- 打开二级缓存的另一种配置

  <property name="cache.use_second_level_cache">true</property>
  <property name="hibernate.cache.provider_class">org.hibernate.cache.OSCacheProvider</property>
  -->  


  <!-- 打开Query的二级缓存(要慎重) -->
     <property name="hibernate.cache.use_query_cache">true</property>
     <!-- 打开二级缓存的统计功能 -->
     <property name="hibernate.generate_statistics">true</property>

 

 <!-- 映射文件配置 -->
  <mapping resource="com/xasxt/entity/User.hbm.xml"/>
  <mapping resource="com/xasxt/entity/Document.hbm.xml"/>


  <!-- 针对某一实体类配置开启二级缓存(也可在各自实体映射文件中进行配置开启) -->
  <class-cache usage="read-only" class="com.xasxt.entity.User"/>
  

<!-- 对User的save进行事件监听,当保存时触发该事件,第一个listener如果不配的话将无法保存。 -->
      <event type="save">
           <listener class="org.hibernate.event.def.DefaultSaveOrUpdateEventListener"/>
           <listener class="com.fei.hibernate.SaveListener"/>
      </event>
 </session-factory>
</hibernate-configuration>

 

4、DWR与SSH集成方案:

<?xml version="1.0" encoding="UTF-8"?>

<dwr>

  <allow>
   <convert converter="bean" match="com.xasxt.ajaxdwr.StudentVO"/>

  <!-- 普通方式使用DWR的配置方式 -->
 <create creator="new" javascript="demo1">
      <param name="class" value="com.xasxt.ajaxdwr.StudentBiz"/>
      <exclude method="getCities"/>
 </create>

<!-- 与spring结合 -->
 <create creator="spring" javascript="intro">

(说明:spring中配置的bean的name应与这里的value相同:<bean name="hello" class="com.xasxt.springdwr.DwrSpringTestBean"/>。页面上即可用intro.方法名 调用spring管理的业务类的方法)
      <param name="beanName" value="hello"/>
 </create>
  </allow>

</dwr>

对于Struts1.x+Spring2.5+Hibernate3.x的配置总结就先到此。

有时间再续......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值