CSDN博客

img Java_qiuzhi

SSH框架环境的搭建

发表于2008/9/30 13:29:00  3969人阅读

把struts2看完了,在回过头来想下struts的东东,有时候真的差不多要走火入魔了......
配置ssh环境是新手必须要经历的一个过程,自己总结了一下仅供大家参考。重点在spring对hibernate工厂类的

接管,对struts action的处理上。添加顺序建议是 shs顺序,即spring hibernate struts ,ssh也可以,总之就

是hibernate要在spring的后面,让spring托管hibernate。注意,添加hibernate包的时候尽量覆盖spring中对hibernate支持的包,不然的话会有两个包冲突,无法创建

sessionFactory类,解决方法就是在lib下找到asm-2.23.jar删除之。
数据源可以用jdbc也可以用jndi的方式,建议使用jndi,无论是效率还是健壮性都是jndi牛。

appplicationContext中有几个属性的配置决定了对hibernate的支持:
<!-- 注册JNDI数据源 -->
 <bean id="JNDIDataSource"
  class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:comp/env/XXXX"></property>
 </bean>
 
 <!-- 注册使用的sessionFactory -->
 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
  destroy-method="close">
  <property name="dataSource">
   <ref bean="JNDIDataSource" />
  </property>
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">
     org.hibernate.dialect.MySQLDialect
    </prop>
   </props>
  </property>
  <property name="mappingResources">
   <list>
    <value>XX/XXX.hbm.xml</value>
   </list>
  </property>
 </bean>
下面那块是在你添加映射文件时自动写在spring中,不用动。
 <!-- 注册Hinernate使用模板 -->
 <bean id="hibernateTemplate"
  class="org.springframework.orm.hibernate3.HibernateTemplate">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>
这块是针对在dao类中使用了hibernateTemplate模板的情况(即你的dao类继承了HibernateDaoSupport类),要

把此模版注册到你的dao类的ioc中。如果dao中没有使用此支持,只要把sessionFactory注册到dao的ioc中即可。
这里最好把dao实现的接口也ioc下,然后daoimpl类在ioc时 用parent继承接口的bean,这样符合了spring的接口

编程。

spring结合struts就是在struts中plug-in即可:
<plug-in
  className="org.springframework.web.struts.ContextLoaderPlugIn">
  <set-property property="contextConfigLocation"
   value="/WEB-INF/classes/applicationContext.xml" />
 </plug-in>
在web.xml中声明contextConfigLocation:

<!-- 在web.xml中添加spring信息 -->
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
   /WEB-INF/classes/applicationContext.xml
  </param-value>
 </context-param>
 
 <servlet>
  <servlet-name>context</servlet-name>
  <servlet-class>
   org.springframework.web.context.ContextLoaderServlet
  </servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 或者建立一个listener监听....由于受过打击,还是不用监听的好。对action的ioc有两种方式:
delegationRequestProcessor和delegationActionProxy。前者注册一个contrller
<controller
  processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
  </controller>
这样不用动action,后者就是在action中修改type="org.springframework.web.struts.DelegatingActionProxy"
。无论是那种方式都要在spring中ioc,注意bean的name(一定是name!)就是action的path,把用到的daoimpl

注册进来。同时,在action中就要写明白daoimpl的setter了,一定的哟。

其实ssh的配置不难,就是细节太多,当然了把这些琐碎的东东说道一天也落落不完,还要大家一起来总结啦。所

以大家现在开始自己的ssh之旅吧......

 

这里给大家一个demo里面有ssh搭建;
数据源配置;
动态验证ActionForm的使用;
分发action使用;
一个简单的hibernate分页程序;
一个log4j的日志文件;可以直接拿来用 http://download.csdn.net/user/Java_qiuzhi

0 0

相关博文

我的热门文章

img
取 消
img