现在的位置: 首页 > 综合 > 正文

整合SSH Struts+spring+hibernate

2013年01月16日 ⁄ 综合 ⁄ 共 9750字 ⁄ 字号 评论关闭

 

整合SSH开发:先让spring整合hibernate,而后在整合Struts
第一步:
思路:显拷入spring所需要的jar包,而后在拷入hibernate所需要的包,最后导入Struts所需要的包
用myeclipse整合开发的步骤:
1.新建一个web项目 右击添加spring支持,我选择使用的spring2.5支持

添加spring支持

spring

2.添加hibernate支持

hibernate                                          

附:

 然后到项目src路径下找到applicationContext.xml文件打开,
<?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"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-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">

 <context:annotation-config/>
 <!-- 定义数据源 -->
 <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName"
  value="com.mysql.jdbc.Driver">
  </property>
  <property name="url" value="jdbc:mysql://localhost:3306/ssh"></property>
  <property name="username" value="root"></property>
  <property name="password" value="1234"></property>
 </bean>
 <!-- 整合hibernate,获得sessionFactory -->
 <bean id="session"
  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/springdao/Myuser.hbm.xml</value>
  </list>
  </property>
 </bean>
 
 <!-- 
配置事务管理 一般数据库是不支持自动提交事务的,所以添次事务管理器后,就不用手工开启事务
-->
 <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="session"></property>
 </bean>
 <!-- 声明采用注解方式管理事务 -->
 <tx:annotation-driven transaction-manager="txManager"/>
 <!-- 业务bean的声明,注入sessionFactory 此业务bean为hibernate反向编译后生成的不需要自己配置自动生成-->
 <bean id="MyuserDAO" class="com.springdao.MyuserDAO">
  <property name="sessionFactory">
  <ref bean="session" />
  </property>
 </bean>
 <!-- 配置action整合Struts -->
 <bean name="/user2" class="com.yourcompany.struts.action.User2Action"></bean>
</beans>
详解:
applicationContext.xml就是整个整合的核心文件,它集成了hibernate.cfg.xml,Struts Action,所以此文件非常重要,几乎所有的配置都在此文件内完成
在myeclipse的数据库模式下,反向生成对应数据库表的映射类及映射文件
生成Struts的action类,要想在action类中调用服务层DAO,可以通过spring的依赖注入,注入一个DAO服务层,
对应的Struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
  <form-beans >
  <form-bean name="user2Form" type="com.yourcompany.struts.form.User2Form" />

  </form-beans>

  <global-exceptions />
  <global-forwards />
  <action-mappings >
   
  <action
  attribute="user2Form"
  input="/form/user2.jsp"
  name="user2Form"
  path="/user2"
  scope="request"
  type="com.yourcompany.struts.action.User2Action">
  <forward name="success" path="/index.jsp" />
  </action>
  </action-mappings>
  <!-- 配置spring控制器把创建action的工作交给spring来完成,接下来在spring中配置action -->
  <controller
  processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
  </controller>
  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>

在action内调用dao
采用注解的方式@Resource MyuserDAO dao;注入dao服务层
然后就可以直接调用服务层地方法进行操作了
最后在web.xml文件中添加spring配置文件,让服务开启的时候自动加载,同时配置上一个spring实力化工厂,让spring自动实例化,并存储在application范围内
源代码:
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的配置文件,从类路径下寻找 -->
  <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!-- 对spring进行自动实例化 ,放在application范围内-->
  <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <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>
  <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

applicationContext.xml
<?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"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-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">

 <context:annotation-config/>
 <!-- 定义数据源 -->
 <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName"
  value="com.mysql.jdbc.Driver">
  </property>
  <property name="url" value="jdbc:mysql://localhost:3306/ssh"></property>
  <property name="username" value="root"></property>
  <property name="password" value="1234"></property>
 </bean>
 <!-- 整合hibernate,获得sessionFactory -->
 <bean id="session"
  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/springdao/Myuser.hbm.xml</value>
  </list>
  </property>
 </bean>
 
 <!-- 配置事务管理 -->
 <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="session"></property>
 </bean>
 <!-- 声明采用注解方式管理事务 -->
 <tx:annotation-driven transaction-manager="txManager"/>
 <!-- 业务bean的声明,注入sessionFactory -->
 <bean id="MyuserDAO" class="com.springdao.MyuserDAO">
  <property name="sessionFactory">
  <ref bean="session" />
  </property>
 </bean>
 <!-- 配置action整合Struts -->
 <bean name="/user2" class="com.yourcompany.struts.action.User2Action"></bean>
</beans>
Struts-config.xml
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.yourcompany.struts.action;

import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.springdao.Myuser;
import com.springdao.MyuserDAO;
import com.yourcompany.struts.form.User2Form;

/** 
 * MyEclipse Struts
 * Creation date: 03-23-2009
 * 
 * XDoclet definition:
 * @struts.action path="/user2" name="user2Form" input="/form/user2.jsp" scope="request" validate="true"
 * @struts.action-forward name="success" path="/index.jsp"
 */
public class User2Action extends Action {
 /*
  * Generated Methods
  */
 @Resource MyuserDAO dao;
 static int i=0;
 /** 
  * Method execute
  * @param mapping
  * @param form
  * @param request
  * @param response
  * @return ActionForward
  */
 public ActionForward execute(ActionMapping mapping, ActionForm form,
  HttpServletRequest request, HttpServletResponse response) {
  User2Form user2Form = (User2Form) form;// TODO Auto-generated method stub
  Myuser user=new Myuser();
  i++;
  user.setUsername("jjjjjjjj"+i);
  user.setPwd("3333");
  user.setAge(34);
  dao.save(user);
  List<Myuser> list=dao.findAll();
  request.setAttribute("list", list);
  System.out.print("ssss");
  return mapping.findForward("success");
 }
}
User2Action.java
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.yourcompany.struts.action;

import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.springdao.Myuser;
import com.springdao.MyuserDAO;
import com.yourcompany.struts.form.User2Form;

/** 
 * MyEclipse Struts
 * Creation date: 03-23-2009
 * 
 * XDoclet definition:
 * @struts.action path="/user2" name="user2Form" input="/form/user2.jsp" scope="request" validate="true"
 * @struts.action-forward name="success" path="/index.jsp"
 */
public class User2Action extends Action {
 /*
  * Generated Methods
  */
 @Resource MyuserDAO dao;
 static int i=0;
 /** 
  * Method execute
  * @param mapping
  * @param form
  * @param request
  * @param response
  * @return ActionForward
  */
 public ActionForward execute(ActionMapping mapping, ActionForm form,
  HttpServletRequest request, HttpServletResponse response) {
  User2Form user2Form = (User2Form) form;// TODO Auto-generated method stub
  Myuser user=new Myuser();
  i++;
  user.setUsername("jjjjjjjj"+i);
  user.setPwd("3333");
  user.setAge(34);
  dao.save(user);
  List<Myuser> list=dao.findAll();
  request.setAttribute("list", list);
  System.out.print("ssss");
  return mapping.findForward("success");
 }
}
自动生成类省略……
OK ,整合完毕!

 

抱歉!评论已关闭.