`
qnzhl
  • 浏览: 29781 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ssh注释配置

ssh 
阅读更多
集成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 Xml代码  
1. <filter>   
2.     <filter-name>struts2</filter-name>   
3.     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>   4. </filter>   5.    
6. <filter-mapping>   
7.     <filter-name>struts2</filter-name>   8.     <url-pattern>*.action</url-pattern>   9. </filter-mapping>   
 然后在classpath中创建struts.xml配置文件。 Xml代码  
1. <?xml version="1.0" encoding="UTF-8"?>   
2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"    
3.         "http://struts.apache.org/dtds/struts-2.1.dtd">   4. <struts>   
5.     <constant name="struts.devMode" value="true" />   
6.     <constant name="struts.convention.default.parent.package" value="default-package" />   
7.     <constant name="struts.convention.package.locators" value="action" />  

8.     <package name="default-package" extends="convention-default">   9.    
10.        <default-action-ref name="index" />   11.   
12.        <action name="index"  >   
13.            <result>/WEB-INF/content/index.jsp</result>   14.        </action>     15.   
16.    </package>   17.</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代码  
1. <listener>   
2.     <listener-class>org.springframework.web.context.ContextLoaderListener    
3.     </listener-class>   4. </listener>   
5. <context-param>   
6.     <param-name>contextConfigLocation</param-name>   
7.     <param-value>classpath:/applicationContext.xml</param-value>   
8. </context-param>   



 


 配置applicationContext.xml Xml代码  
1. <?xml version="1.0" encoding="UTF-8"?>   2. <beans>   3.    
4.     <context:component-scan base-package="persistence,service,action,aop"/>   5.         
6.     <aop:aspectj-autoproxy  />   7.    
8.     <tx:annotation-driven transaction-manager="transactionManager" />   9.         
10.    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" >   
11.        <property name="sessionFactory" ref="sessionFactory" />   
12.    </bean>   13.   
14.    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" >        
15.        <property name="configLocation" value="classpath:hibernate.cfg.xml" />   16.    </bean>   17.   
18.    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" >   
19.        <property name="sessionFactory" ref="sessionFactory" />   
20.    </bean>   21.        22.</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代码  
1. <?xml version="1.0" encoding="UTF-8"?>   
2. <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">   3. <hibernate-configuration>   4.     <session-factory>   
5.         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>   
6.         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>   
7.         <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sshdemo</property>   
8.         <property name="hibernate.connection.username">root</property>   
9.         <property name="hibernate.connection.password">root</property>   
10.        <property name="hibernate.hbm2ddl.auto">update</property>   
11.        <property name="hibernate.show_sql">true</property>   12.        <property name="hibernate.format_sql">true</property>   13.        <property name="hibernate.current_session_context_class">thread</property>          14.   
15.        <!-- 最大连接数 -->   
16.        <property name="hibernate.c3p0.max_size">20</property>   
17.        <!-- 最小连接数 -->   
18.        <property name="hibernate.c3p0.min_size">5</property>   19.        <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->   
20.        <property name="hibernate.c3p0.timeout">120</property>   
21.        <!-- 最大的PreparedStatement的数量 -->   
22.        <property name="hibernate.c3p0.max_statements">100</property>   



 


23.        <!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒-->   24.        <property name="hibernate.c3p0.idle_test_period">120</property>   
25.        <!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->   
26.        <property name="hibernate.c3p0.acquire_increment">2</property>   
27.        <!-- 每次都验证连接是否可用 -->   
28.        <property name="hibernate.c3p0.validate">true</property>   29.   
30.        <mapping class="domain.Task" />   31.    </session-factory>   
32.</hibernate-configuration>   
  四:TaskList Demo 
详细代码查看附件,附件一使用maven构建。进入目录,使用mvn jetty:run启动项目,记住创建sshdemo mysql数据库。附件二为Eclipse项目,包含所有依赖包。
分享到:
评论

相关推荐

    SSH注解-配置方式

    这个文档主要涉及SSH框架中的注解配置,包括Struts2、Spring和Hibernate的使用。 首先,我们来看Struts2的注解配置。在Action类中,我们可以使用`@Namespace`来定义该Action的命名空间,这有助于组织和管理URL路径...

    ssh注解配置

    在这个"ssh注解配置"的项目中,我们可以深入理解这三个框架如何协同工作,以及如何通过注解简化配置。 **Spring框架**:Spring是一个全面的后端应用程序框架,它提供了IOC(Inversion of Control,控制反转)和AOP...

    ssh注解开发案例

    - `spring-context.xml`:Spring的配置文件,用于声明和装配Bean,可能使用了注解配置。 - `hibernate.cfg.xml`:Hibernate的配置文件,可能包含了数据库连接信息。 - `实体类`:使用Hibernate注解定义的数据库模型...

    SSH全注解环境搭建

    本文将详细介绍如何搭建一个基于全注解配置的SSH环境。 #### 二、准备工作 1. **创建Web项目并添加SSH支持**: - 使用IDE(如Eclipse或IntelliJ IDEA)新建一个Web项目。 - 在项目设置中确保选中了“Enable ...

    SSH注解方式整合小例子

    在这个“SSH注解方式整合小例子”中,我们将深入探讨如何使用注解来简化SSH框架的配置过程,使得开发更加便捷。 **Struts2** 是一个基于MVC设计模式的Action驱动的Web应用框架,它通过注解可以实现Action类的声明式...

    ssh2注解配置

    ssh2注解配置,全部是注解配置,struts2和hibernate3和spring2.5全部是注解配置,,访问路径为http://localhost:8080/mytest/student/findAll.action

    SSH零配置,完全注解方式工程

    这个项目对于初学者来说,是一个理解SSH框架和注解配置的良好起点。通过学习这个例子,你可以了解到: 1. 如何在没有XML配置文件的情况下,使用Java注解来配置Spring的bean。 2. Struts2的注解配置,包括动作和结果...

    ssh环境搭建+注解配置

    下面将详细介绍SSH2框架及注解配置的相关知识点。 **Spring框架** Spring是一个全面的后端开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心功能,同时涵盖了数据访问、事务管理、远程服务、邮件服务等...

    SSH 整合原代码 包括2种方式:注解&xml;配置 (已测试, 原创)

    4. **注解配置**:注解配置是一种更加简洁、直观的配置方式,可以减少大量的XML配置文件。在SSH整合中,例如,使用@Controller注解标记一个类为Spring的控制器,@Service注解标记业务服务,@Repository注解标记数据...

    SSH整合项目 配置文件 注解

    6. **项目配置**:SSH整合项目的配置文件包括Spring的`beans.xml`,Struts的`struts.xml`以及Hibernate的`hibernate.cfg.xml`(虽然使用注解后,配置文件可能相对较少)。这些配置文件定义了各个组件的行为,如...

    ssh零配置_项目Demo

    总的来说,SSH零配置是提高开发效率的一种实践,它利用现代Java技术,如注解和反射,减少了XML配置文件的使用,使项目更加简洁和易于理解。结合具体的博客文章,开发者可以深入学习并应用这些技术到自己的项目中。

    SSH框架集成注解零配置

    Hibernate的注解配置主要体现在实体类上,使用`@Entity`标识实体类,`@Table`定义表名,`@Id`标识主键,`@GeneratedValue`定义主键生成策略,以及`@Column`定义字段与列的映射。此外,`@ManyToOne`、`@OneToMany`、`...

    ssh基于全注解配置

    struts2+hibernate+spring很详细的全注解资源配置

    ssh注解jar包的补充

    总结起来,"ssh注解jar包的补充"涉及到Struts2框架的扩展,特别是使用约定优于配置插件来减少XML配置,并利用ASM库增强注解处理能力。这三份jar包的加入将使开发更便捷,但也需要注意兼容性和性能优化。

    SSH注解小实例

    通过这个实例,初学者可以了解到SSH框架如何利用注解进行快速开发,理解各个框架之间的协作方式,以及注解如何简化配置和增强代码的可读性。实践过程中,不仅能够学习到SSH的基本用法,还能提升对Java注解的理解和...

    SSH注解配制指南

    ### SSH注解配置指南 #### 一、注解概述 注解是Java 5引入的一个重要特性,它受到C#的启发,旨在为程序提供更丰富的元数据信息。注解可以被视为代码的一种特殊形式的注释,但它比普通的注释更为强大,因为它能够在...

    2016年javaWeb学习SSH注解整合例子demo

    本教程将详细讲解2016年SSH框架整合时使用注解的方式,以提高开发效率并降低配置复杂度。 1. **Struts2**:作为MVC框架,Struts2负责处理HTTP请求,调度控制流程,并将结果返回给用户。在2016年的版本中,Struts2...

    图解SSH框架配置步骤

    - 编写实体类并使用注解或XML映射文件进行ORM配置。 7. **整合SSH** - 将Struts2的Action类与Spring的Bean关联,通常通过`struts-plugin.xml`文件完成,这样Action实例由Spring管理。 - 配置Spring对Hibernate的...

    ssh1或ssh2的有关配置和说明项详解

    4. **SSH2注解**:在Java中,SSH2可以通过注解简化配置,如`@EnableSshServer`和`@SshUserDetailsService`,这些注解帮助开发者快速集成SSH服务。 5. **分页实现**:在处理大量数据时,SSH2可以配合其他工具实现...

    java和ssh注解

    在这些技术中,注解(Annotation)的使用日益普及,极大地简化了配置工作,增强了代码的可读性和维护性。本文将深入探讨Java和SSH框架中的注解及其应用。 首先,让我们从Java的注解开始。Java注解是一种元数据,它...

Global site tag (gtag.js) - Google Analytics