SSH整合开发的步骤:
一、首先我们先导入jar包:
Struts2.x的jar包、Spring3.x的jar包、Hibernate3.x的jar包、Struts-spring plugin的jar包
二、接下来我们配置web.xml:
1>添加openSessionInView过滤器,这个配置的作用是:延迟session周期到响应结束,避免延迟加载引起错误,这个过滤器应该放到Struts过滤器的前面,组成过滤器链
<!-- openSessionInView -->
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2>添加Struts2.x Filter配置,这个是使用Struts开发必须要配置的,大家应该知道
<!-- Struts2.x Filter -->
<filter>
<filter-name>Struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3>添加Spring上下文监听器,这个监听器的作用是在web容器启动的时候自动创建applicationContext对象
<!-- Spring上下文监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext*.xml
</param-value>
</context-param>
4>添加Spring 字符集过滤器,避免中文乱码,你懂得,不想配置的话,也可以自己写一个过滤器
<!-- Spring 字符集过滤器 -->
<filter>
<filter-name>springEncoding</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-mapping>
<filter-name>springEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
三、在源文件夹中添加配置文件:
1>添加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:p="http://www.springframework.org/schema/p"
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-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
>
<!-- 启动自动扫描,便于使用注解把类交给Spring管理-->
<context:component-scan base-package="com.kaishengit"/>
<!-- 开启事务的Annotation支持 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql:///ssh" />
<property name="maxIdleTime" value="25000" />
<property name="properties">
<props>
<prop key="user">root</prop>
<prop key="password">root</prop>
<prop key="c3p0.acquire_increment">2</prop>
<prop key="c3p0.max_size">20</prop>
<prop key="c3p0.min_size">1</prop>
</props>
</property>
</bean>
<!--配置SessionFactory-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="packagesToScan" value="com.kaishengit.pojo"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">
ehcache.xml
</prop>
</props>
</property>
</bean>
</beans>
2>添加Struts配置文件struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="myPackage" extends="struts-default">
<action name="user" class="userAction">
<result>index.jsp</result>
</action>
</package>
</struts>
3>添加ehcache.xml配置文件,是第三方二级缓存,这个在上面applicationContext.xml中使用到,里面都是默认值
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
/>
</ehcache>
四、在类中使用注解
1>pojo类使用注解,如User.java
package com.kaishengit.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
@Entity
@Table(name="t_user")
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
public class User {
private int id;
private String username;
private String password;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
2>Spring类使用注解,类交给Spring管理,一种是在applicationContext.xml中配置,但是使用注解非常简便,把需要交给Spring类管理的类上面加上@Service、@Controller、@Component、@Repository任意一种都行,在需要依赖注入的属性的set方法上面加上@Autowired即可,如:
package com.kaishengit.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.kaishengit.dao.UserDao;
import com.kaishengit.pojo.User;
@Transactional
@Service
public class UserService {
private UserDao userDao;
public void saveOrUpdate(User user){
userDao.saveOrUpdate(user);
}
public void del(int id){
userDao.del(id);
}
@Transactional(readOnly=true)
public User findById(int id){
return (User) userDao.findById(id);
}
@Transactional(readOnly=true)
public List<User> findAll(){
return userDao.findAll();
}
//set
@Autowired
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
3>使用事务,在需要事务的类(一般都是Service类)上面加上@Transactional即可,在查询的方法上面加上@Transactional(readOnly=true),代表只读事务,更利于性能,例子就是上面的java类
4>Action类,暂且使用struts.xml配置
--end--
分享到:
相关推荐
标题"Struts2.X+Hibernate3.X+Spring2.5 整合"指的是将这三个框架的特定版本(Struts2.X,Hibernate3.X,Spring2.5)集成到同一个项目中,实现高效的企业级应用开发。这种整合能够充分利用各个框架的优势,使开发者...
【标题】"Ext2.1 struts1.x spring 2.x hibernate 2.x" 涉及的技术栈是Web开发中的经典组合,主要包括EXT JS的2.1版本、Struts1.x、Spring 2.x以及Hibernate 2.x。这些技术在过去的Web应用程序开发中扮演着重要角色...
### Struts1.x、Spring2.x、Hibernate3.x 和 DWR2.x 整合知识点解析 #### 一、Struts1.x与Spring2.x的整合 **1.1 在web.xml中进行Struts和Spring的配置** 为了实现Struts1.x与Spring2.x的无缝集成,首先需要在...
1. **整合目标**:本文档的目标是将 Struts2.x、Spring3.x、Hibernate4.x 与 DWR、jquery2.x 和 easyUI1.3.x 进行集成,以构建一个功能齐全且高效的 Web 开发环境。 2. **jQuery 版本选择**:为了兼容性和性能考虑...
Struts2、Hibernate和Spring是Java开发中三大主流框架,它们各自在Web应用程序的不同层面上发挥作用,共同构建了所谓的"S2SH"(Struts2、Spring、Hibernate)集成架构。Struts2作为MVC(Model-View-Controller)框架...
这个"Struts1.x+Spring+Hibernate开发实例"是一个综合性的学习资料,旨在帮助开发者理解如何将这三个框架整合在一起,构建一个完整的Web应用程序。 Struts1.x是Apache软件基金会的开源MVC(Model-View-Controller)...
SSH整合是Java Web开发中的一种常见技术组合,指的是Struts2、Spring和Hibernate三大框架的集成。这三种框架分别在表现层、业务层和服务层扮演重要角色,它们的结合能够帮助开发者构建高效、灵活和可维护的Web应用...
Struts 2、Hibernate 和 Spring 是Java开发中最流行的三大...通过"Struts.2.Hibernate.Spring整合开发技术详解"的全套视频和源码,你可以深入学习SSH整合的每个细节,从实际案例中积累经验,提升自己的Java开发能力。
Struts1.x、Spring 2.x 和 Hibernate3.x 是经典的Java Web开发框架组合,被称为SSH(Struts-Spring-Hibernate)集成。这个jar包集合包含了这三个框架的核心库和其他相关依赖,便于开发者快速搭建一个基于MVC模式的...
Spring、Struts1.x 和 Hibernate 是经典的 Java Web 开发框架,它们的整合是构建企业级应用的常见方式。这三个框架分别负责不同的职责:Spring 提供依赖注入和事务管理,Struts1.x 负责视图和控制层,而 Hibernate ...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责,而将它们整合在一起可以构建出高效、灵活的企业级应用。这里我们详细探讨一下"Struts2.3.x+Spring3.1.x+Hibernate4.1整合工程"的...
综上所述,"基于eclipse的struts2.x+hibernate3.x+spring3.x整合文档及实例源码"提供了一个完整的SSH整合教程,通过下载的源码和文档,开发者可以学习并实践SSH的集成,了解每个框架在实际项目中的作用和它们协同...
Struts_2+Spring_3+Hibernate整合开发.part1.rar Struts_2+Spring_3+Hibernate整合开发.part2.rar Struts_2+Spring_3+Hibernate整合开发.part3.rar Struts_2+Spring_3+Hibernate整合开发.part4.rar Struts_2+...
在Java Web开发中,Spring、Struts2和Hibernate这三大框架的整合是常见的技术栈,被称为SSH(Spring、Struts2、Hibernate)整合。SSH整合能够帮助开发者构建高效、灵活且易于维护的企业级应用程序。接下来,我们将...
SSH框架是Java开发中常用的三大开源框架Struts2、Hibernate和Spring的组合,它们各自负责应用程序的不同层面,共同构建了一个高效、灵活的企业级应用开发环境。这个SSH整合jar包是针对Struts2.3.16.1、Hibernate...
**Struts1.x与Hibernate整合:** 在Java Web应用中,Struts1.x与Hibernate的整合能够实现强大的功能。通常,Struts1.x作为前端控制器,负责接收HTTP请求,处理用户的交互,而Hibernate则在后台进行数据操作。Action...
Struts2、Hibernate和Spring(通常简称为SSH)是Java Web开发中的三个核心框架,分别用于处理MVC(模型-视图-控制器)架构、对象关系映射(ORM)和依赖注入(DI)。将这三个框架整合在一起,可以构建出高效、可维护...
Struts1.x、Spring 和 Hibernate 是Java Web开发中经典的“SSH”框架组合,它们各自承担着不同的职责。Struts1.x 是一个 MVC 框架,负责处理用户请求和业务逻辑;Spring 提供了依赖注入和面向切面编程,简化了组件的...
Struts2、Hibernate3.2和Spring2.0是Java Web开发中三个非常重要的框架,它们的整合在企业级应用中十分常见,旨在提供更高效、灵活和可维护的解决方案。下面将详细介绍这三个框架以及它们整合的核心概念和知识点。 ...
轻量级JavaEE企业应用实战_Struts2+Spring3+Hibernate整合开发_第3版.part2