`
gabrieltong
  • 浏览: 16257 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

集成struts2 spring hibernate

阅读更多

成struts,spring,hibernate时,对于初学者来说最大的麻烦就其繁琐的xml配置文件。现在三者都对基于注解的配置提供了良好的支持

。在struts2中,使用convent plugin,得益于annotation和规约,配置过程得以大大减少。在spring2.5也可以使用@Autowired,进行注入,

使用@Controller,@Service,@Repository注解,自动定义bean,还支持annotation风格的声明式事务支持,以及aspectJ类似的AOP。

hibernate也可以使用JPA标准注解定义实体描述,避免使用mapping文件。

当然,对于annotation和xml风格的配置,谁更好,更多依赖个人兴趣。但使用annotation确实减少了很多配置工作量。本文采用annotation

风格的配置,以TaskList为例子讲解struts2 spring hibernate的集成。

一:配置struts2。
首先在web.xml文件中配置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>*.action</url-pattern>
</filter-mapping> 

 然后在classpath中创建struts.xml配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"  
        "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <constant name="struts.devMode" value="true" />
    <constant name="struts.convention.default.parent.package" value="default-package" />
    <constant name="struts.convention.package.locators" value="action" />
    <package name="default-package" extends="convention-default">

        <default-action-ref name="index" />

        <action name="index" >
            <result>/WEB-INF/content/index.jsp</result>
        </action>   

    </package>
</struts> 

struts.devMode属性,配置启用调试,将有更多的错误信息输出,便于排错。struts.convention.default.parent.package属性,指定使用注解标

注的控制器的默认包。可以在这个默认包中配置全局信息。

struts.convention.package.locators属性,为查找控制器包路径的关键字。如com.mycompany.action,com.mycompany.action.user,都会被

struts2扫描。里面有继承至Action的类,或类名以Action结尾的类,都会做为Action处理。

<default-action-ref name="index" />指定了默认action,如果指定的action不存在则访问该action。

把struts2-spring-plugin-2.1.6.jar添加到classpath中,struts2会自动扫描struts-plugin.xml文件,该文件自动注册了

com.opensymphony.xwork2.ObjectFactory,完成和spring的集成。

二:配置spring

在web.xml中加入ContextLoaderListener,用以启动spring容器。用contextConfigLocation指定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> 

 配置applicationContext.xml

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

    <context:component-scan base-package="persistence,service,action,aop"/>
      
    <aop:aspectj-autoproxy />

    <tx:annotation-driven transaction-manager="transactionManager" />
      
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" >
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" >      
        <property name="configLocation" value="classpath:hibernate.cfg.xml" />
    </bean>

    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" >
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
      
</beans>

 <context:component-scan />指定Bean扫描的包,多个包逗号隔开,任何标注了@Component,@Controller,@Service,@Repository的类,

都会被自动识别为bean。

<aop:aspectj-autoproxy />声明aspectj动态代理,启用注解驱动的aspectj配置。

<tx:annotation-driven />启用注解驱动的声明事务支持。

然后定义了sessionFactory和transactionManager,hibernateTemplate用来注入到Dao中,取代继承的方式使用spring对hibernate的集成支持

三:hibernate配置
hibernate配置独立配置,方便修改。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sshdemo</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <property name="hibernate.current_session_context_class">thread</property>        

        <!-- 最大连接数 -->
        <property name="hibernate.c3p0.max_size">20</property>
        <!-- 最小连接数 -->
        <property name="hibernate.c3p0.min_size">5</property>
        <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->
        <property name="hibernate.c3p0.timeout">120</property>
        <!-- 最大的PreparedStatement的数量 -->
        <property name="hibernate.c3p0.max_statements">100</property>
        <!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒-->
        <property name="hibernate.c3p0.idle_test_period">120</property>
        <!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
        <property name="hibernate.c3p0.acquire_increment">2</property>
        <!-- 每次都验证连接是否可用 -->
        <property name="hibernate.c3p0.validate">true</property>

        <mapping class="domain.Task" />
    </session-factory>
</hibernate-configuration> 
 
分享到:
评论

相关推荐

    集成struts2 spring hibernate,使用注解

    在IT行业中,集成Struts2、Spring和Hibernate是构建企业级Java Web应用的常见实践,这种集成模式被称为SSH(Struts2-Spring-Hibernate)框架。这篇博客文章可能详细介绍了如何利用注解来简化SSH框架的配置过程。下面...

    struts2 spring hibernate框架技术与项目实战 光盘源码上

    在本资源中,"struts2 spring hibernate框架技术与项目实战 光盘源码 上"提供了这三大框架的实践项目代码,帮助开发者深入理解并掌握它们的集成与应用。 Struts2作为MVC(模型-视图-控制器)框架,主要负责处理HTTP...

    struts2 spring hibernate集成

    集成Struts2、Spring和Hibernate时,需要注意配置文件的正确设置,包括Action配置、Spring Bean的定义、Hibernate的数据库连接和实体映射。同时,理解这三个框架的工作原理和相互作用,对于解决问题和优化代码至关...

    struts2 spring hibernate integration

    **Struts2、Spring、Hibernate集成** 集成这三个框架可以形成强大的企业级应用开发平台。在实际项目中,通常使用Spring来管理Struts2的Action实例,通过Spring的DI实现Action类的依赖注入。同时,Spring负责管理...

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

    Spring还集成了其他框架,包括Struts2和Hibernate,提供了统一的事务管理策略,使得在多个框架间协调工作变得更加简单。 在SSH整合过程中,你需要以下关键的jar包: 1. **Struts2** 相关的jar:包括`struts2-core....

    java javaee struts2 spring hibernate免费学习视频教程

    - **Struts2高级特性**:探索Struts2与其他技术(如Spring、Hibernate)的集成方式,以及自定义插件的开发。 ### Spring框架 - **Spring核心容器**:详细介绍BeanFactory和ApplicationContext接口的作用,以及依赖...

    struts2 spring hibernate 整合架构

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责Web应用的不同层面,协同工作可以构建出高效、可维护的系统。Struts2主要用于处理MVC(Model-View-Controller)架构中的Controller部分,Spring...

    基于struts2 spring hibernate 开发的bbs论坛

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责,共同构建了一个强大的企业级应用体系。本项目"基于Struts2 Spring Hibernate开发的BBS论坛"是一个典型的MVC(Model-View-...

    SSH集成 Struts+spring+hibernate集成

    SSH集成是Java开发Web应用程序时常用的一种框架整合方式,它结合了Struts、Spring和Hibernate三个开源框架的优势,提供了一种高效、灵活且易于管理的解决方案。以下将详细阐述这三个框架以及它们集成后的主要特点和...

    ssh(Struts2+hibernate+spring)三大开源框架的参考文档

    Spring还提供了对其他框架如Struts2和Hibernate的集成支持。Spring2.0-reference_final_zh_cn.chm文档可能包含了Spring的IoC容器、AOP、数据访问/集成、Web应用、MVC、任务调度等方面的内容。 学习SSH三大框架,你...

    spring_struts2_hibernate_mysql集成

    标题中的"spring_struts2_hibernate_mysql集成"指的是在Java Web开发中,将Spring、Struts2、Hibernate这三大主流框架与MySQL数据库进行整合。这是一个常见的企业级应用开发模式,用于构建高效、可维护的Web应用程序...

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

    SSH整合,全称为Struts、Spring和Hibernate的集成,是一种常见的Java Web开发框架组合,用于构建高效、可维护的企业级应用程序。在这个例子中,我们看到的是一个基于SSH的用户注册功能的实现,使用的开发工具是...

    Struts2 Spring Hibernate的配置及登录实例(附源码)

    通过这个登录实例,你可以学习到如何在实际项目中集成Struts2、Spring和Hibernate,理解它们之间的协作方式,以及如何编写和配置相关的代码。同时,这也将帮助你掌握Java Web开发的基础知识,提高解决实际问题的能力...

    s2sh struts2 Spring hibernate整合实例(附带所有jar包,及源码)

    SSH,即Struts2、Spring和Hibernate,是Java Web开发中的三大框架。它们各自在应用程序的不同层次上发挥着重要作用,Struts2处理MVC模式中的视图和控制,Spring提供了依赖注入和面向切面编程,Hibernate则负责数据库...

    struts2+spring4+hibernate

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

    spring整合struts2与hibernate核心配置文件

    `struts2-spring-plugin.xml`配置Struts2与Spring的集成,确保Action类由Spring容器管理。`spring-context.xml`中,需要配置数据源、SessionFactory、事务管理器以及各业务层和DAO层的bean。Hibernate的`hibernate....

    Maven搭建spring_struts2_Hibernate_demo

    Maven搭建spring_struts2_Hibernate项目源码,包括数据库,博客地址:http://blog.csdn.net/fengshizty/article/details/43794911

    Struts2+Hibernate+Spring 整合示例

    Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责应用程序的不同层面:Struts2处理MVC(Model-View-Controller)架构中的控制层,Hibernate专注于数据持久化,而Spring则提供了全面的依赖注入和...

Global site tag (gtag.js) - Google Analytics