`
Hillen.chan
  • 浏览: 62927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2 + Spring2.5 + Hibernate3.2 框架 + MySQL 用Eclipse手工搭建

阅读更多
整体步骤是:
1、先加入Struts2
2、加入Spring2.5
3、加入Hibernate3.2

具体步骤是:
1、建个Web项目,而Eclipse里是Tomcat project
2、加入Struts2的核心包,(自己找吧网上很多)
3、写个web.xml放Web-Info下
<listener>  
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
	</listener>  
       <filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

4、写个三个很简单的jsp文件login.jsp/success.jsp/error.jsp
<body>
   	<s:form action="action_executeFunction" namespace="/">
   		名称:<s:textfield name="user.name"/>
   		密码:<s:textfield name="user.password"/>
   		<input type="submit" value="提交"/>
   	</s:form>
</body>

<body>
   	this is success page/
</body>

<body>
           this is error page.
</body>

5、写个Struts.xml文件放src下
<!-- 配置中文支持 --> 
<constant name="struts.custom.i18n.resources" value="alternate" />
	
<!-- 配置Spring-->
<constant name="struts.objectFactory" value="spring" />

<package name="user" namespace="/" extends="struts-default">
 		<global-results>
 			<result name="message">/WEB-INF/page/message.jsp</result>
 		</global-results>
		<action name="action_*" method="{1}"
			class="com.***.action.LoginAction" >
			<result name="input">login.jsp</result>
			<result name="error">error.jsp</result>
			<result name="success">success.jsp</result>
		</action>
</package>

6、写个action
public class LoginAction extends ActionBase{
	
	private User user  = new User();
	private ILoginBo loginBo ;
	
	public String input() throws Exception {

		this.user.setName("llll");
		return INPUT;
	}
	
	public void validateExecuteFunction() throws Exception{
		
		if(user.getName() == null || user.getPassword() == null ){
			this.redraw();
		}	
	}
	public String executeFunction() throws Exception {
		
		//ILoginBo loginBean = (ILoginBo)this.appContext.getBean("LoginBo");
		if(!loginBo.isExits(user.getName())){
			
			loginBo.addUser(user);
			return SUCCESS;
		}
		return ERROR;
	}
	
	public String redraw() throws Exception {
		
		return ERROR;
	}
	public ILoginBo getLoginBo() {
		return loginBo;
	}
	public void setLoginBo(ILoginBo loginBo) {
		this.loginBo = loginBo;
	}
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}

}

7、以上这些文件对测试配好Struts2基本完成。其中还加入了一下配置Spring的应该能看出来在web.xml和Struts.xml中。
8、开始配置Spring,写个applicationContext.xml放Web-Info下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:amq="http://activemq.apache.org/schema/core"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans.xsd
    http://activemq.apache.org/schema/core 
    http://activemq.apache.org/schema/core/activemq-core.xsd">
	
	<!-- 这里scope="prototype"代表Action层不是单例模式,每次请求都会新创建一个对象-->
	<bean id="loginActionBean" class="com.***.action.LoginAction" scope="prototype">
		<property name="loginBo" ref="loginBo"/>
		<property name="user" ref="userBean"/>
	</bean>
	
	<!-- 而Bo层默认都是单例的才能进行事物管理-->
	<bean id="loginBo" class="com.***.bo.impl.LoginBoImpl">
		 <property name="userDao">
             <ref bean="userDao"/>
         </property>
	</bean>
	
	<bean id="dataSource"  
         class="org.apache.commons.dbcp.BasicDataSource">  
         <property name="driverClassName"  
             value="org.gjt.mm.mysql.Driver">
         </property>
         <property name="url" value="jdbc:mysql://localhost:3306/liucj"/>
         <property name="username" value="cc"/>
         <property name="password" value="cc"/>
     </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/****/dao/po/User.hbm.xml</value>
			 </list>
         </property>
     </bean>
	 <bean id="hibernateTransactionManager" 
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref local="sessionFactory"/>
		</property>
	</bean>
	 <!--Dao事务代理Bean的配置 -->
	<bean id="daoTemplate" 
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" 
		abstract="true">
		<property name="transactionManager">
			<ref bean="hibernateTransactionManager"/>
		</property>
		<property name="transactionAttributes">
			<props>
				<prop key="save*">PROPAGATION_REQUIRED,-MyCheckedException</prop>
				<prop key="delete*">PROPAGATION_REQUIRED,-MyCheckedException</prop>
				<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
				<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
			</props>
		</property>
	</bean>
	<bean id="userDao" parent="daoTemplate">
		<property name="target">
			<ref bean="userDaoTarget"/>
		</property>
	</bean>
	
	 <bean id="userDaoTarget" class="com.***.dao.impl.UserDaoImpl">
		<property name="sessionFactory">
			<ref local="sessionFactory"/>
		</property>
	</bean>
	
</beans>

9、写个业务类,我这里用的是bo结尾,值得注意的是我的业务层和Hibernate层我都是用接口和实现类的方式。
LoginBoImpl.java
public class LoginBoImpl implements ILoginBo {
	
	private IUserDao userDao ;
	

	public IUserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(IUserDao userDao) {
		this.userDao = userDao;
	}

	@Override
	public boolean isExits(String name) {
		// TODO Auto-generated method stub
		if(name.equals("liucj")){
			return true;
		}
		return false;
	}

	@Override
	public void addUser(User user) {
		// TODO Auto-generated method stub
		try{
			PoUser poUser = new PoUser();
			poUser.setId(0);
			poUser.setName(user.getName());
			poUser.setPassword(user.getPassword());
			
			this.userDao.saveUser(poUser);
		}catch(Exception ex){
			ex.printStackTrace();
		}
	}
}

10、写到这里,Spring的事物基本上已经完成,(其中在applicationContext.xml中也加入了Hibernate的配置)
11、开始写Hibernate层,先写个po对象PoUser.java
public class PoUser {
	
	private int id ;
	private String name ;
	private String password ;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

12、写个映射文件User.hbm.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>  
     <class name="com.***.dao.po.PoUser" table="user" catalog="liucj">  
         <id name="id" type="java.lang.Integer">  
             <column name="id" length="4" />  
         </id>  
         <property name="name" type="java.lang.String" not-null="true">  
             <column name="username" length="30" />  
         </property>  
         <property name="password" type="java.lang.String">  
             <column name="password" length="30" />  
         </property>  
     </class>  
</hibernate-mapping>  

13、写个dao类,UserDaoImpl.java
public class UserDaoImpl extends HibernateDaoSupport implements IUserDao{

	@Override
	public void saveUser(PoUser poUser) {
		this.getHibernateTemplate().saveOrUpdate(poUser);
		
	}
	

}

14、此时,所有配置完成,写的类都很简单,所以没有用多长时间,接下来准备加入Ajax,还有Hibernate的缓存。

朋友们如果你看了我的事物控制,估计会提出疑问,我只是在Hibernate层进行了事务管理,
其实应该包装在业务层,就是我上面提的bo层,而action就没有这个必要了。


----------------原创:http://lcj1112.iteye.com/blog/462673
分享到:
评论

相关推荐

    struts2+spring2.5+hibernate3.2整合完整项目,带数据库脚本

    Struts2、Spring2.5和Hibernate3.2是Java Web开发中经典的三大框架,它们的整合使用在过去的许多年里被广泛应用于企业级应用系统。这个完整的项目提供了从开发环境到运行环境的所有必要组件,包括数据库脚本,使得...

    struts1.2+spring2.5+hibernate3.2学习实例(Eclipse)

    由于上传限制,lib包不能上传,大家可以下载spring2.5版本的支持库(下最大的那个zip包),全部加进去就行了,还有mysql的连接包,项目很简单,直接导入eclipse,就可以使用,包内有mysql的sql文件,框架已经搭好,...

    struts1+spring2.5+hibernate3.0集成带数据库

    Struts1、Spring2.5和Hibernate3.0是Java Web开发中经典的SSH(Spring、Struts、Hibernate)集成框架的三个组件,它们在2000年代末期至2010年代初广泛应用于企业级应用开发。SSH框架组合为开发者提供了模型-视图-...

    struts1.0+spring2.5+hibernate3.2

    本系统采用struts+spring+hibernate架构,重在讲述三者结合在一起的应用开发,所有源程序都 有详细的注释,供入门者学生参考,未经作者允许不得用于商业用途,只能用于教学或个人学习。 程序只是整个系统中的一个...

    java8+tomcat8+struts2.5+spring4.3+hibernate5.2框架搭建详细过程

    ### Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 框架搭建详细过程 #### 一、环境配置与准备 在搭建一个基于Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 的项目前,首先需要对开发环境...

    eclipse搭建(Struts2.5+Spring5.0+hibernate5.2)整合框架Demo实例

    本教程将详细介绍如何使用Eclipse IDE搭建一个基于Struts2.5、Spring5.0和Hibernate5.2的整合框架,提供一个可运行的Demo实例。这个组合是Java企业级开发中常见的技术栈,它们各自负责不同的职责:Struts2作为前端...

    struts2.16+spring2.5+hibernate3.0工程所需jar文件

    综上所述,搭建一个基于Struts2.16、Spring2.5和Hibernate3.0的项目,需要理解每个框架的核心理念和用法,同时掌握它们之间的整合技巧,以及如何配置和管理项目中的库文件。这不仅能帮助开发者构建出结构清晰、易于...

    struts2+Spring2.5 项目简单实例

    Struts2和Spring是两个非常重要的Java Web框架,它们在企业级应用开发中广泛使用。Struts2提供了MVC(模型-视图-控制器)架构,帮助开发者更好地组织和管理Web应用程序,而Spring则是一个全面的后端框架,提供依赖...

    struts2+spring+hibernate+mysql(eclipse)整合增删改查

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合通常被称为SSH整合,是构建企业级应用的一种常用技术栈。本项目是基于Eclipse集成开发环境,结合MySQL数据库实现的一个基础的增删改查功能。接...

    struts2.1.6+spring2.5+hibernate3.3.1

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1 是一个经典的JavaEE企业级开发框架组合,通常被称为SSH框架。这个组合在过去的开发中被广泛使用,提供了MVC(Model-View-Controller)架构、依赖注入(DI)以及持久化管理的...

    Bug管理系统 struts2+sping2.5+hibernate3(2-2)

    本程序采用struts2.0+spring2.5+hiberhate3架构开发。 主要展示技术包括:三层架构 freemarker模版 面向切面编程 邮件发送 定时任务 缓存管理 运行环境: 1 TOMCAT 5.5及以上版本. 2 JDK5.0及以上版本. 3 ...

    MYECLIPSE + STRUTS2 + SPRING4 + HIBERNATE4 + STRUCTS2S+OGNL + MYSQL_5.7.12

    根据提供的标题、描述以及部分内容,本文将详细解析与MYECLIPSE + STRUTS2 + SPRING4 + HIBERNATE4 + STRUCTS2S+OGNL + MYSQL_5.7.12相关的技术栈及其应用。这些技术在企业级开发中非常常见,能够帮助开发者构建高效...

    Bug管理系统 struts2+sping2.5+hibernate3(1-2)

    本程序采用struts2.0+spring2.5+hiberhate3架构开发。 主要展示技术包括:三层架构 freemarker模版 面向切面编程 邮件发送 定时任务 缓存管理 运行环境: 1 TOMCAT 5.5及以上版本. 2 JDK5.0及以上版本. 3 ...

    学生管理系统SSH(Struts2+Spring3.1+Hibernate3.6)

    笔者开发时所用到的软件: apache-tomcat-7.0.25.exe eclipse-jee-indigo-SR2-win32.zip mysql-5.5.20-win32.msi navicat100_mysql_en.zip ...适合于初学Struts2+Spring+Hibernate的开发人员参考学习。

    Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程

    Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目涉及到的知识点涵盖了Java Web开发中常用的三个框架技术,即Struts2、Spring和Hibernate。这个教程旨在指导开发者如何将这三种技术整合在一起,构建一个Web...

    Struts2+Spring3+Hibernate3 用户管理系统实例源码

    本例主要是实现了struts2+spring3+hibernate3的 基本框架搭建的注册登录,以及用户增删改查,适于初学者学习。 包括:注册 登录功能 分页的实现 前端校验 验证码的实现 注册时有ajax 校验,登录时 后台从数据库...

    基于Annotation的Struts2.0+Hibernate3.3+Spring2.5图文教程整合开发.doc

    这篇文档主要介绍了一个使用注解(Annotation)进行Struts2.0、Hibernate3.3和Spring2.5整合开发的教程。这种集成方式相比传统的XML配置,可以简化配置过程,提高开发效率。以下是各个框架及注解技术在教程中的应用: ...

    eclipse(struts2+spring3+hibernate3)案例附带mysql数据库

    在IT行业中,SSH(Struts2 + Spring3 + Hibernate3)是一个经典的Java Web开发框架组合,常用于构建高效、可维护的企业级应用。这个压缩包文件"SSH.zip"和"gxsoft.zip"很可能是包含了一个使用SSH框架实现的示例项目...

    Eclipse+Struts+Spring+Hibernate+Mysql环境搭建及访问数据库实例

    在IT行业中,开发Java Web应用时常常会使用到一套名为SSH2(Struts2、Spring、Hibernate)的技术栈,这是一套成熟的后端框架组合,能够有效地帮助开发者构建高效、可维护的应用程序。本教程将详细讲解如何在Eclipse...

Global site tag (gtag.js) - Google Analytics