`
siser344
  • 浏览: 22164 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Struts2、Hibernate、Spring整合时如何向Servlet注入属性

阅读更多

1.Spring数据库的配置

<?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:tx="http://www.springframework.org/schema/tx"  
    xmlns:aop="http://www.springframework.org/schema/aop"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd ">  
    <!-- Hibernate的会话 -->  
    <bean id="sessionFactory"  
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"  
        scope="singleton">  
        <property name="dataSource" ref="dataSource"/>  
        <property name="hibernateProperties">  
            <props>  
                <prop key="hibernate.dialect">  
                    org.hibernate.dialect.SQLServerDialect   
                </prop>  
                <prop key="hibernate.show_sql">true</prop>  
                <!-- 设置查询结果集可以回滚,在分页时必须这样 -->  
                <prop key="jdbc.use_scrollable_resultset">true</prop>  
                <prop key="hbm2ddl">true</prop>  
            </props>  
        </property>  
        <property name="mappingResources">  
            <list>  
                <value>abu/csdn/bean/User.hbm.xml</value>  
            </list>  
        </property>  
    </bean>  
       
    <!-- Spring的Hibernate工具类HibernateTemplate -->  
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" scope="singleton">  
        <property name="sessionFactory" ref="sessionFactory"/>  
    </bean>  
    <!-- 数据源 -->  
    <bean id="dataSource"  
        class="org.apache.commons.dbcp.BasicDataSource" scope="singleton">  
        <property name="driverClassName"  
            value="com.microsoft.sqlserver.jdbc.SQLServerDriver">  
        </property>  
        <property name="url"  
            value="jdbc:sqlserver://localhost:1433;databaseName=csu">  
        </property>  
        <property name="username" value="liky"/>  
        <property name="password" value="redhat"/>  
    </bean>  
    <!-- Spring的声明式事务 -->  
    <bean id="transactionManager"  
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
        <property name="sessionFactory" ref="sessionFactory"/>  
    </bean>  
    <!-- 配置事务的传播特性,通常应该将事务设置在业务层,而非dao上 -->  
    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
        <tx:attributes>  
            <!-- name为事务对哪些方法生效,可以使用通配符; propagation为事务的传播特性,一共有6种-->  
            <tx:method name="save*" propagation="REQUIRED" />  
            <tx:method name="delete*" propagation="REQUIRED" />  
            <tx:method name="update*" propagation="REQUIRED" />  
            <tx:method name="find*" read-only="true" />  
        </tx:attributes>  
    </tx:advice>  
    <!-- 切入点,就是哪些包的哪些类的哪些方法参与事务 -->  
    <aop:config>  
        <!-- id是一个标识,expression中的execution表达式比较复杂:   
            1.第一个星号表示匹配所有的返回值;2.abu.csdn.service表示包;3.第二个星号表示匹配这个包的所有类   
            4.第三个星号表示匹配类的所有方法;5.括号内表示方法的参数;6.两个点表示匹配所有的参数    
        -->  
        <aop:pointcut id="allServiceMethods"  
            expression="execution(* abu.csdn.service.*.*(..))" />  
        <!-- 指定事务和切入点 -->  
        <aop:advisor pointcut-ref="allServiceMethods"  
            advice-ref="txAdvice" />  
    </aop:config>  
       
</beans>

2.Servlet
package abu.csdn.servlet;   
import java.io.IOException;   
import javax.servlet.ServletContext;   
import javax.servlet.ServletException;   
import javax.servlet.http.HttpServlet;   
import javax.servlet.http.HttpServletRequest;   
import javax.servlet.http.HttpServletResponse;   
import org.springframework.orm.hibernate3.HibernateTemplate;   
import org.springframework.web.context.WebApplicationContext;   
import org.springframework.web.context.support.WebApplicationContextUtils;   
/**  
 * <p>  
 * 演示使用Spring向Servlet注入对象  
 * </p>  
 * User: Abu Date: 2009-7-2 Time: 14:30:55  
 */  
public class CopyOfShowImageServlet extends HttpServlet {   
    HibernateTemplate hibernateTemplate;   
       
       
    /**  
     * <p>  
     * 在Servlet中注入对象的步骤:  
     * 1.取得ServletContext  
     * 2.利用Spring的工具类WebApplicationContextUtils得到WebApplicationContext  
     * 3.WebApplicationContext就是一个BeanFactory,其中就有一个getBean方法  
     * 4.有了这个方法就可像平常一样为所欲为了,哈哈!  
     * </p>  
     */  
    @Override  
    public void init() throws ServletException {           
        super.init();   
                   
        ServletContext servletContext = this.getServletContext();   
                   
        WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);   
                   
        hibernateTemplate = (HibernateTemplate)ctx.getBean("hibernateTemplate");   
    }   
    @Override  
    protected void doPost(HttpServletRequest request,   
            HttpServletResponse response) throws ServletException, IOException {   
        doGet(request, response);   
    }   
       
       
    @Override      
    protected void doGet(HttpServletRequest request,   
            HttpServletResponse response) throws ServletException, IOException {   
           
    }   
}

 

3.总结

你应该看到了,我在Spring中使用了声明式事务,如果直接使用Spring的工厂类在这里是不行的,因为所有的对象都已经有Spring的IoC管理了,所以只能借助WebApplicationContextUtils这个工具类来获得Bean.

 

 

分享到:
评论
1 楼 -_=倒霉孩子 2010-06-30  
菜鸟先学学,支持下先

相关推荐

    jsp servlet struts hibernate spring

    【标题】: "Java Web开发中的JSP、Servlet、Struts、Hibernate和Spring技术详解" 【描述】: "本文深入探讨Java Web开发中常见的技术,包括JSP、Servlet、Struts、Hibernate和Spring,讲解它们的工作原理和实用技巧...

    Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)

    《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》全面介绍了Java Web开发中的各种相关技术及知识。全书分为9篇,内容层次清晰,难度循序渐进。第1篇为入门篇,内容包括Java Web开发概述等;第2篇...

    Struts2 hibernate spring 整合所需jar文件

    在整合Struts2、Hibernate和Spring的过程中,jar文件的正确配置至关重要。这些jar文件包含了框架运行所需的类库和API,确保框架之间的无缝协作。以下是整合过程中可能会用到的一些关键jar文件: 1. **Struts2框架...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书

    《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书》是一本深入探讨J2EE Web应用程序开发的专业书籍。J2EE,全称Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的...

    Struts2+Spring+Hibernate集成开发环境的配置小例子

    5. **整合SSH2**:在Struts2的Action类中注入Spring管理的Bean,这样就可以利用Spring的IoC和AOP特性。同时,通过HibernateTemplate或Session接口进行数据操作。 6. **测试**:编写测试用例,检查各个框架是否正常...

    struts2-hibernate3-spring整合需要的全部jar包

    Struts2、Hibernate3和Spring是Java开发中常用的三大框架,它们各自负责不同的职责:Struts2用于控制应用程序的流程,Hibernate3则是优秀的对象关系映射(ORM)框架,Spring则提供全面的依赖注入(DI)和面向切面...

    hibernate struts2 和spring的整合项目

    【标题】:“Hibernate、Struts2与Spring的整合项目” 【描述】:“这是一个将Hibernate、Struts2和Spring三大框架集成在一起的项目示例。它展示了如何在实际开发中有效地结合这三个强大的Java技术,实现数据持久层...

    Struts Spring Hibernate整合实践

    2. **Spring 与 Hibernate 整合**: - Spring 提供了对 Hibernate 的支持,可以方便地管理 SessionFactory 和 Transaction,通过AOP实现声明式事务管理,降低了代码的复杂性,提高了可维护性。 3. **整合流程**: ...

    精通JavaEE Eclipse Struts2 Hibernate Spring整合应用案例 源代码14章 Lab

    《精通JavaEE Eclipse Struts2 Hibernate Spring整合应用案例 源代码14章 Lab》是针对Java企业级开发的一份重要资源,旨在帮助开发者深入理解并掌握JavaEE平台上的Struts2、Hibernate和Spring框架的集成应用。...

    SSH整合源码(Struts+Spring+Hibernate整合用户注册例子)

    Struts和Spring之间通过ActionServlet和Spring的DispatcherServlet协同工作,而Spring与Hibernate之间的整合通常通过SessionFactoryBean和HibernateTemplate完成。 8. **用户注册流程**:用户提交注册信息后,...

    struts2+spring4+hibernate

    Struts2、Spring4和Hibernate是Java开发中的三大框架,它们在构建企业级Web应用程序时起着核心作用。本教程将深入探讨这三个框架如何协同工作,以实现高效、灵活和可扩展的电子商务平台。 首先,Struts2是一个基于...

    struts hibernate spring整合图解及源码

    综上所述,"struts hibernate spring整合图解及源码"这个主题涵盖了如何将这三大框架结合使用,以构建高效、模块化的JavaWeb应用。通过学习和实践这个整合过程,初学者可以深入理解JavaEE开发的高级技术,并提升自己...

    Struts+Spring+Hibernate整合教程.pdf

    Struts提供了MVC(Model-View-Controller)设计模式的实现,Spring作为一个全面的轻量级框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能,而Hibernate则是强大的ORM(对象关系映射)工具,使得Java应用...

    struts2、hibernate和spring框架整合所需的jar以及配置文档

    整合SSH框架时,你还需要配置web.xml文件,将Struts2的Front Controller配置为Servlet容器的DispatcherServlet。同时,需要在`struts.xml`、`hibernate.cfg.xml`和`applicationContext.xml`中进行相应的设置,例如...

    JavaEE企业应用实战-Struts2+Spring3+Hibernate整合开发(第3版)

    ### JavaEE企业应用实战-Struts2+Spring3+Hibernate整合开发(第3版)核心知识点解析 #### 一、JavaEE概述与架构 - **JavaEE简介**:JavaEE(Java Platform, Enterprise Edition)是Java平台的企业版,提供了一套...

    javaWeb项目整合开发的各个项目源码包括各种框架(struts+hibernate+spring)

    在这个JavaWeb项目中,Struts、Hibernate和Spring的整合通常称为SSH(Struts-Spring-Hibernate)集成。它们的集成方式有很多种,一种常见的做法是通过Spring来管理Struts的Action实例,同时Spring作为Hibernate的...

    开发者突击·Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)源码

    《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》详细介绍了Java Web软件架构中的各种开发技术。主要内容包括:以MySQL为数据库、Tomcat为Web服务器、Eclipse为开发工具、CVS为版本控制工具...

    整合struts+hibernate+spring应用开发详解 part1

    "整合struts+hibernate+spring应用开发详解"是一个系列教程,旨在帮助开发者深入理解这三者如何协同工作。 首先,Struts是一个MVC(Model-View-Controller)框架,它主要处理HTTP请求,负责控制应用程序的流程。在...

    maven整合spring+hibernate+struts2

    本项目“maven整合spring+hibernate+struts2”就是一个典型的Java Web开发模式,它利用Maven作为项目管理工具,Spring作为核心框架,Hibernate作为持久层解决方案,Struts2作为表现层控制器。以下将详细阐述这些技术...

    Struts+Hibernate+Spring高校选课系统

    这个系统整合了三个主流的Java开源框架:Struts、Hibernate和Spring,形成了经典的SSH架构。 **Struts框架**是MVC(Model-View-Controller)设计模式的一种实现,主要用于处理用户请求和控制业务流程。在高校选课...

Global site tag (gtag.js) - Google Analytics