`
l514941630
  • 浏览: 47125 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

集成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://www.bt285.cn /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>http://www.5a520.cn /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>http://www.bt285.cn :/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:// http://www.feng123.com :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 integration

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

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

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

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

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

    struts2与Hibernate整合

    Struts2和Hibernate是两种非常重要的Java开源框架,它们在企业级Web开发中扮演着核心角色。Struts2是一款强大的MVC(Model-View-Controller)框架,它为构建基于J2EE的Web应用程序提供了结构化的支持。而Hibernate则...

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

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

    struts2 spring hibernate 模板实例

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的集成被广泛称为SSH(Struts2-Spring-Hibernate)集成。这个“struts2 spring hibernate 模板实例”是一个已经调试好的示例项目,旨在帮助开发者快速...

    Struts2、Spring和Hibernate应用实例

    在实际项目中,这三个框架常常一起使用,形成所谓的SSH(Struts2-Spring-Hibernate)集成。Spring作为核心,负责管理Struts2和Hibernate的生命周期,提供事务管理,而Struts2负责HTTP请求的处理和视图的展示,...

    集成struts2 spring hibernate,使用注解

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

    最新版本的Struts2+Spring4+Hibernate4框架整合

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...

    基于struts2 spring hibernate 开发的bbs论坛

    本项目"基于Struts2 Spring Hibernate开发的BBS论坛"是一个典型的MVC(Model-View-Controller)架构的实例,旨在帮助初学者理解并掌握这些技术的实际应用。 Struts2作为MVC框架,主要负责控制层,它的主要任务是...

    Struts2_Spring_Hibernate整合开发实例

    在"Struts2_Spring_Hibernate整合开发实例"中,我们将深入探讨如何将这三个框架集成到一个项目中,实现无缝协作。这个实例提供了详细的步骤和代码示例,帮助开发者快速理解和掌握整合过程。 首先,Struts2的集成...

    flex与+struts2+hibernate+spring集成实例项目

    flex与+struts2+hibernate+spring集成实例项目,源码奉献,物有所值

    spring,struts1,hibernate实例

    SSH组合,即Spring、Struts1和Hibernate的集成,是早期Java Web开发中的经典架构。Spring作为整体的容器,管理Struts1和Hibernate的生命周期,同时提供了事务管理。Struts1负责处理用户交互,而Hibernate则处理数据...

    Struts+Spring+Hibernate开发实例 (SSH整合)

    Struts、Spring、Hibernate(SSH)是Java Web开发中三个非常重要的开源框架,它们分别用于MVC模式的实现、依赖注入和持久化管理。SSH整合是将这三个框架结合在一起,以构建更高效、可维护性更强的企业级应用。本文...

    整合struts+spring+hibernate实例

    Struts、Spring 和 Hibernate 是Java Web开发中的三大框架,它们分别负责表现层、业务层和服务层的管理。本文将深入探讨如何在WebLogic服务器上整合这三个框架,实现一个高效的Struts Portlet。 **Struts 框架**: ...

    JAVA论坛系统源码(Struts 2+Hibernate+Spring实现)

    Java论坛系统源码是基于三大...综上所述,这个Java论坛系统源码是一份宝贵的教育资源,它不仅展现了Struts 2、Hibernate和Spring的集成使用,还提供了实践这些技术的实例,有助于加深对Java Web开发的理解和技能提升。

    10.6struts2+hibernate+spring的整合源代码

    在SSH整合中,Spring通常用来管理Struts2的Action实例,以及Hibernate的数据访问对象(DAO)。项目的ApplicationContext配置文件(如applicationContext.xml)会定义bean的声明和依赖关系。 在这个简单的登录页面...

    Struts+Spring+Hibernate开发实例.pdf

    标题和描述中指出的文档《Struts+Spring+Hibernate开发实例.pdf》包含了关于这三个流行的Java开源框架结合使用的示例代码和相关知识点。Struts负责视图与控制器部分,Spring负责业务逻辑层及依赖注入,Hibernate负责...

Global site tag (gtag.js) - Google Analytics