SSH框架小小心得

来源:互联网 发布:php二次开发ecshop 编辑:程序博客网 时间:2024/05/15 23:44

本帖主要目的是了解在开发的过程中,ssh框架应用开发步骤和注意环节,还有就是偶的小小心得,O(_)O哈哈~

一、 开发步骤

1.加入struts框架支持(注意命名)

2.加入spring框架支持

3.加入hibernate支持

4.在web.xml文件中加入初始化applicationContext.xml文件的servlet或监听器

5.在applicationContext.xml中创建sessionFactory

6.建立pojo和映射文件

7.建立dao

8.测试dao中的方法

9.建立use case

10.拦截action的创建工作

11.在action中编写字段,添加set方法

12.在spring中注入该字段

二,实例

一个简单显示所有信息的例子

1,2,3,略,简要说明:在加入Hibernate框架是,其中SessionFactory的创建交给Spring框架完成。

4、.在web.xml文件中加入初始化applicationContext.xml文件的servlet(红色部分)

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

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <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</param-value>

    </init-param>

    <init-param>

      <param-name>debug</param-name>

      <param-value>3</param-value>

    </init-param>

    <init-param>

      <param-name>detail</param-name>

      <param-value>3</param-value>

    </init-param>

    <load-on-startup>0</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.do</url-pattern>

  </servlet-mapping>

 

 <servlet>

  <servlet-name>context</servlet-name>

  <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>

  <load-on-startup>1</load-on-startup>

  </servlet>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

5在applicationContext.xml中创建sessionFactory

主要代码如下

<bean id "sessionFactory"

         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

         <property name="configLocation">

         <value>classpath:hibernate.cfg.xml</value>

         </property>

         </bean>

6、建立pojo和映射文件

利用hibernate生成,在MyEclispe中的database视图将建立的表格生成pijo文件,代码略

7、.建立dao

采用接口方法,

部分代码如下

Idao.java

 

package org.chkSystem.Hibernate.dao;

import java.util.List; 

public interface IDao {

    public <T> List<T> findExample(T t);

    public <T> List<T> findExample(T t, int begin, int end);

    public <T> T findBypk(T t,java.io.Serializable pk);

    public <T> T findByReturnOne(T t);

}

ParentDao.java

package org.chkSystem.Hibernate.dao; 

import java.io.Serializable;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

 public class ParentDao extends HibernateDaoSupport implements IDao {

 

       public <T> T findByReturnOne(T t) {

              // TODO Auto-generated method stub

              List list = this.getHibernateTemplate().findByExample(t, 0, 1);

              return (T) (list!=null && list.size()>0? list.get(0):null);

       }

 

       public <T> T findBypk(T t, Serializable pk) {

              // TODO Auto-generated method stub

             

              return (T) this.getHibernateTemplate().get(t.getClass(), pk);

       }

 

       public <T> List<T> findExample(T t) {

              // TODO Auto-generated method stub

              return this.getHibernateTemplate().findByExample(t);

       }

 

       public <T> List<T> findExample(T t, int begin, int count) {

              // TODO Auto-generated method stub

              return this.getHibernateTemplate().findByExample(t, begin, count);

       }

 

}

 

UsersDao.java

package org.chkSystem.Hibernate.dao;

 

public class UsersDao extends ParentDao {

 

}

采用接口和继承(一层继承关系)可以大大简化dao代码的书写量,并且做到了项目的健壮性

8.测试dao中的方法(略)

9、建立use case 在Structs框架的structs-config.xml文件中创建(略)

10、拦截action的创建工作

在structs-config.xml文件中拦截,加入代码如下

<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>

11、在action中编写字段,添加set方法

    IDao usersdao; 

    public void setUsersdao(IDao usersdao) {

       this.usersdao = usersdao;

    }

采用注入dao的方法,增加模块间的松耦合,O(_)O哈哈~

12在spring中注入该字段

<bean id ="UsersDao" class="org.chkSystem.Hibernate.dao.UsersDao">

       <property name="sessionFactory">

           <ref local="sessionFactory"/>

       </property>

    </bean>

    <bean name="/show" class="org.chkSystem.struts.action.ShowAction">

       <property name="usersdao">

           <ref local="UsersDao"/>

       </property>      

    </bean>

就ok完成了,再在tomcat中配置部署运行,就可以了,

不过要注意的是,我用的版本是MyEclispe5.5+Structs1.2+Spring2+Hibernate3.1版本需要解决包冲突问题,在tomcat文件中的webapps中找到自己的项目,删除包asm -2.2.3.jar就可以了