`
godsend_jin
  • 浏览: 41566 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

集成struts2 spring hibernate,使用注解

阅读更多

一:配置struts2。
首先在web.xml文件中配置filter

Xml代码
<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> 
<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代码
<?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> 
<?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配置文件路径,可以使用*通配符结尾。

Xml代码
<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> 
<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代码
<?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> 
<?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代码
<?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集成

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

    struts2 spring hibernate integration

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

    struts2 spring hibernate整合的简单登录代码

    6. 实体类(Entity):对应数据库表的Java类,使用Hibernate注解。 7. DAO接口及实现:处理数据库操作,例如UserDAO。 8. Service接口及实现:封装业务逻辑,例如UserService。 9. Action类:处理用户请求,例如...

    Struts+Spring+Hibernate注解零配置整合

    本项目"Struts+Spring+Hibernate注解零配置整合"的目标是展示如何通过注解方式实现这三大框架的无缝集成,从而减少XML配置文件的使用,提高开发效率和代码可读性。 在传统的Struts、Spring和Hibernate整合中,大量...

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

    SSH框架,即Struts2、Hibernate和Spring的组合,是Java Web开发中广泛使用的三大开源框架。它们各自负责Web应用程序的不同层面,通过整合可以提供一套完整的解决方案,实现MVC(Model-View-Controller)设计模式,...

    struts2 spring hibernate 整合架构

    2. 集成Spring:在Struts2中使用Spring插件,通过注解或XML配置将Action类交由Spring管理,实现依赖注入。同时,配置Spring的ApplicationContext,定义Bean和依赖关系。 3. 集成Hibernate:在Spring配置文件中配置...

    struts2.0 spring2.5 hibernate3.2 注解最新框架

    开发者可能会在该文件中找到一个简单的Struts2 Action,一个带有注解的Spring Bean,以及一个用Hibernate注解配置的实体类。通过分析和运行这个`test`文件,可以更好地理解三大框架如何协同工作,以及注解如何简化...

    基于Struts2+hibernate+spring 注解开发的学生信息管理系统

    【SSH 注解开发】是Java Web开发中一种常见的技术栈组合,由Struts2、Hibernate和Spring框架共同构建。这个学生信息管理系统就是基于这种技术栈,利用注解的方式来简化配置,提高开发效率。 Struts2作为MVC(模型-...

    struts2 hibernate spring注解的整合(重写了巴巴运动网部门功能)

    Struts2、Hibernate和...总的来说,Struts2、Hibernate和Spring的注解整合提供了更简洁、高效的开发方式,减少了XML配置,提高了代码可读性。通过理解并熟练掌握这些注解,开发者能更轻松地构建复杂的企业级应用。

    Spring3+Struts2+Hibernate3 全注解集成开发

    在这个"Spring3+Struts2+Hibernate3 全注解集成开发"项目中,我们将深入探讨如何使用这三个框架的注解版本进行集成,以实现对Emp表的操作。 首先,Spring3是依赖注入(DI)和面向切面编程(AOP)的优秀框架。在全...

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

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

    Struts2 Spring3 Hibernate 注解功能 DAO 泛型 通用分页

    Struts2、Spring3和Hibernate是Java开发中的三大框架,它们的集成使用极大地提升了Web应用的开发效率和可维护性。在这个项目"SSHWithAnnotationDemo"中,开发者利用注解功能,DAO泛型以及通用分页技术,进一步优化了...

    Struts2.3.28+spring4.1.6+hibernate4.3.8整合总结(注解)

    Struts2.3.28、Spring4.1.6和Hibernate...以上就是Struts2.3.28、Spring4.1.6和Hibernate4.3.8整合的关键知识点,以及注解在整合中的作用。理解并熟练掌握这些内容,能够帮助开发者更有效地构建和维护Java EE应用程序。

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

    5. **整合步骤**:在Struts2的Action中,通过Spring的Autowired注解注入需要的服务类,这些服务类通常会持有Hibernate的SessionFactory,从而完成DAO层的数据库操作。 6. **测试与运行**:在MyEclipse8.0环境下,将...

    Spring+Struts2+hibernate+Redis整合

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...

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

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

    SSH2 annotation 实现struts2.1.6 spring2.5.6 hibernate3.3 全注解开发

    在这个特定的项目中,开发者选择了SSH2的特定版本:Struts2.1.6、Spring2.5.6和Hibernate3.3,并且强调了全注解开发,这意味着在配置文件中尽可能地使用注解来代替XML配置。 首先,让我们详细了解一下这三个框架的...

Global site tag (gtag.js) - Google Analytics