`

SSH整合步骤(二)

阅读更多

准备好所需要的JAR包后,开始进行SSH框架的整合

 

1. 新建WEB工程

 

2. 首先集成spring和hibernate

 

    引入spring和hibernate所必需的jar文件(将JAR文件粘贴到WEB-INF的lib目录下)

 

    也可以以用户库的方式引入(window-preference-java-build path-user Libraries -    new,右键工程-bulid path-configure build path-libraries-add library-user library)

 

3. 引入oracle数据库的驱动类

    

    ojdbc14.jar  粘贴到WEB-INF的lib目录下

 

4.  新建spring的配置文件

 

     新建beans.xml放在src目录下

 

     spring的配置文件主要包含以下几个部分:

 

     a. 可以采用自动扫描的方式管理需要管理的类,注入可以通过注解的方式注入

 

        <context:component-scan base-package="cn.itcast"/>

 

         也可以采用传统的<bean>标签的方式管理类,注入既可以采用注解的方式,也可以采用传统的ref方式注入

 

<bean id="employeeDao"  

class="com.sy.crm.dao.hibernate.EmployeeDaoHibernate">  

<property name="sessionFactory">  

<ref bean="sessionFactory" /> 

</property>  

</bean>  

<bean id="employeeManager"  

class="com.sy.crm.service.impl.EmployeeManagerImpl">  

<property name="employeeDao">  

<ref bean="employeeDao" />  

</property>  

</bean>  

 

    b.sessionFactory交个spring进行管理

    

       交给spring管理sessionFactory后,可以在DAO层直接注入sessionFactory对象,达到解耦并且减少了手动创建sessionFactory的步骤,而且spring注入的sessionFactory对象默认是单例的,省去了我们为它编写单例的代码

 

      annotation映射和xml映射引入的类不同,分别为

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

 

     完整的sessionFactory配置:

<!--Spring管理hibernatesessionFactory   接管hibernate的事务管理服务-->

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

        <!--注入数据源配置-->

        <property name="dataSource" ref="dataSource"/>                 

        <!--指定hibernate的映射文件

        <property name="mappingResources">                              

              <list>

                  <value>cn/itcast/bean/buyer.hbm.xml</value>

              </list>

        </property>-->

        <!--指定hibernate的属性值-->

        <property name="hibernateProperties">

       

           <props>

              <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>

              <prop key="hibernate.hbm2ddl.auto">update</prop>

              <prop key="hibernate.show_sql">true</prop>

              <prop key="hibernate.format_sql">true</prop>

           </props>                            

             <!-- <value>

                  hibernate.dialect=org.hibernate.dialect.OracleDialect

                  hibernate.hbm2ddl.auto=update

                  hibernate.show_sql=true

                  hibernate.format_sql=true

              </value>-->

        </property>

        <property name="packagesToScan" value="com.gyjx19e.om.*"/>  //此句必须写到上层目录 例如我的bean都在com.gyjx19e.om.bean下,但是我value写com.gyjx19e.om.bean.*会报实体找不到的错误,改为com.gyjx19e.om.*就正确了  此句用来扫描所有的实体类,以便在保存实体的时候可以找到实体与对应数据库表的映射关系(采用xml映射文件配置,则不需要该句)

     </bean>

    

   c. 配置数据源

 

      可以采用c3p0、dbcp、prxool等方式配置数据源

 

      本例采用c3p0方式

 

      //配置数据源 采用c3p0方式配置 
    <!--配置数据源 采用c3p0方式配置-->

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">

           <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>

           <property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.31.195:1521:OM"/>

           <property name="user" value="om"/>

           <property name="password" value="om"/>

          

           <!--初始化时获取的连接数,取值应在minPoolSizemaxPoolSize之间。Default:3-->

           <property name="initialPoolSize" value="1"/>

           <!--连接池中保留的最小连接数。-->

           <property name="minPoolSize" value="1"/>

           <!--连接池中保留的最大连接数。 Default:15-->

           <property name="maxPoolSize" value="300"/>

           <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default:0-->

           <property name="maxIdleTime" value="60"/>

           <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default:3-->

           <property name="acquireIncrement" value="5"/>

           <!--60秒检查所有连接池中的空闲连接。Default:0-->

           <property name="idleConnectionTestPeriod" value="60"/>

    </bean>

 

   d. 配置spring事务管理服务

 

      可以采用注解的方式实现事务管理也可以采用传统xml的方式配置事务

 

      注解的方式:

 

      //声明事务处理器  采用注解的方式实现事务管理
     <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory"/>
     </bean>

      //使用基于注解方式配置事务
     <tx:annotation-driven transaction-manager="txManager"/>

 

     传统的xml方式:

 

  1.      <!-- 事务管理器 -->  
  2.     <bean id="transactionManager"    
  3.     class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  4.     <property name="sessionFactory">  
  5.     <ref local="sessionFactory"/>  
  6.     </property>  
  7.     </bean>  
  8.     <!-- 配置事务特性,配置add,delete,update开始的方法,事务传播特性为required -->  
  9.     <tx:advice id="txAdvice" transaction-manager="transactionManager">  
  10.     <tx:attributes>  
  11.     <tx:method name="add*" propagation="REQUIRED"/>  
  12.     <tx:method name="delete*" propagation="REQUIRED"/>  
  13.     <tx:method name="update*" propagation="REQUIRED"/>  
  14.     <tx:method name="*" read-only="true"/>  
  15.     </tx:attributes>  
  16.     </tx:advice>  
  17.     <!-- 配置那些类的方法进行事务管理,当前com.sy.crm.service包中的子包,   
  18.     类中所有方法需要,还需要参考tx:advice的设置 -->  
  19.     <aop:config>  
  20.     <aop:pointcut id="allManagerMethod" expression="execution(*   
  21.     com.sy.crm.service.*.*(..))"/>  
  22.     <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>  
  23.     </aop:config>  

完成的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:context="http://www.springframework.org/schema/context"

    xmlns:aop="http://www.springframework.org/schema/aop" 

    xmlns:tx="http://www.springframework.org/schema/tx" 

    xsi:schemaLocation="  

    http://www.springframework.org/schema/beans   

    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/context/spring-context-2.5.xsd 

    http://www.springframework.org/schema/aop

    http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

    http://www.springframework.org/schema/tx  

    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">   

   

    <!--自动扫描方式管理类-->  

    <context:component-scan base-package="com.gyjx19e.om"/>

   

    <!--配置数据源 采用c3p0方式配置-->

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">

           <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>

           <property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.31.195:1521:OM"/>

           <property name="user" value="om"/>

           <property name="password" value="om"/>

          

           <!--初始化时获取的连接数,取值应在minPoolSizemaxPoolSize之间。Default:3-->

           <property name="initialPoolSize" value="1"/>

           <!--连接池中保留的最小连接数。-->

           <property name="minPoolSize" value="1"/>

           <!--连接池中保留的最大连接数。 Default:15-->

           <property name="maxPoolSize" value="300"/>

           <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default:0-->

           <property name="maxIdleTime" value="60"/>

           <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default:3-->

           <property name="acquireIncrement" value="5"/>

           <!--60秒检查所有连接池中的空闲连接。Default:0-->

           <property name="idleConnectionTestPeriod" value="60"/>

    </bean>

 

    <!--Spring管理hibernatesessionFactory   接管hibernate的事务管理服务-->

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

        <!--注入数据源配置-->

        <property name="dataSource" ref="dataSource"/>                 

        <!--指定hibernate的映射文件

        <property name="mappingResources">                              

              <list>

                  <value>cn/itcast/bean/buyer.hbm.xml</value>

              </list>

        </property>-->

        <!--指定hibernate的属性值-->

        <property name="hibernateProperties">

       

           <props>

              <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>

              <prop key="hibernate.hbm2ddl.auto">update</prop>

              <prop key="hibernate.show_sql">true</prop>

              <prop key="hibernate.format_sql">true</prop>

           </props>                            

             <!-- <value>

                  hibernate.dialect=org.hibernate.dialect.OracleDialect

                  hibernate.hbm2ddl.auto=update

                  hibernate.show_sql=true

                  hibernate.format_sql=true

              </value>-->

        </property>

        <property name="packagesToScan" value="com.gyjx19e.om.*"/>

     </bean>

    

     <!--声明事务处理器  采用注解的方式实现事务管理-->

     <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

            <property name="sessionFactory" ref="sessionFactory"/>

     </bean>

 

     <!--使用基于注解方式配置事务-->

     <tx:annotation-driven transaction-manager="txManager"/>

</beans>

 

如果采用xml配置映射文件和事务管理或者注入,可以将相应的地方替换掉。

分享到:
评论

相关推荐

    SSH整合详细步骤&SSH整合详细步骤

    SSH整合是指将Spring、Struts2和Hibernate三个开源框架整合在一起,实现MVC设计模式的高效开发模式。在这个过程中,Spring作为应用的核心容器,负责管理Bean;Struts2作为表现层框架,处理用户请求和视图展示;...

    ssh整合 ssh整合步骤 三大框架整合

    通过以上步骤,SSH整合的基本架构就搭建完成了。接下来,开发者可以定义自己的业务逻辑Bean,实现DAO(Data Access Object)层和Service层,利用Spring的AOP(Aspect-Oriented Programming)特性进行事务管理,以及...

    SSH项目整合的步骤示例

    通过这个SSH整合的实例,开发者可以更好地理解这三大框架如何协同工作,从而提高开发效率和代码质量。不过,实际项目可能涉及到更多细节,例如异常处理、安全性配置、国际化支持等,都需要根据项目需求进行相应的...

    SSH整合步骤

    SSH整合.doc和ssh整合步骤.pdf则详细介绍了整合过程。整合通常包括以下几个关键步骤: 1. **环境准备**:确保安装了MyEclipse、Java开发环境(JDK)、Tomcat服务器,并设置好相应的环境变量。 2. **下载和导入框架...

    SSH整合原理以及步骤详解

    **三、SSH整合步骤** 1. **配置环境**:安装JDK、Tomcat服务器,以及SSH框架的库文件。 2. **创建项目结构**:设置Maven或Gradle构建工具,创建基本的Web项目目录结构。 3. **配置Spring**:编写Spring的配置文件...

    ssh整合步骤详解.txt

    hibernate,spring,struts2等三种java框架,整合的详细步骤和一些注意点

    SSH整合Jar包

    SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...

    SSH整合步骤.doc

    ### SSH整合步骤详解 #### 一、概述 SSH框架整合是指将Struts2(S)、Spring(S)和Hibernate(H)三个框架结合在一起使用,从而实现MVC架构下的高效开发与管理。本文将详细介绍SSH整合的具体步骤及注意事项,帮助...

    ssh整合步骤

    ### SSH整合步骤详解 #### 一、概述 SSH框架整合是指将Struts2(S)、Spring(S)和Hibernate(H)三个技术框架结合起来构建一个高效稳定的Java Web应用程序的过程。这三个框架分别负责Web层、业务逻辑层和服务...

    SSH框架整合步骤详解

    以下是SSH框架整合的详细步骤: 1. **环境准备**: 首先确保已经安装了JDK,并配置好环境变量。同时,下载并引入SSH框架的相应jar包,包括Spring、Struts2和Hibernate的核心库以及它们的依赖库。 2. **创建项目...

    ssh整合所需要的jar包

    5. **整合步骤**: - 配置Struts2的`struts.xml`,声明Spring插件并指定Spring应用上下文配置文件。 - 在Spring的`applicationContext.xml`中配置DataSource、SessionFactory、HibernateTemplate或JPA相关配置。 ...

    SSH 整合项目(包含详细步骤+源码)

    **SSH整合步骤**: 1. **环境配置**:首先,你需要安装并配置好JDK,设置好开发环境如Eclipse或IntelliJ IDEA,然后导入这三个框架的库。 2. **创建项目**:创建一个新的Maven项目,然后在pom.xml中添加Spring、...

    ssh框架整合步骤讲解

    SSH整合的步骤大致如下: 1. 引入依赖:在项目中引入Spring、Struts和Hibernate的库文件或添加对应的Maven或Gradle依赖。 2. 配置Spring:创建spring-context.xml,定义Bean的配置,包括业务Service、DAO以及数据...

    SSH整合增删改查全部

    在本例子中,SSH整合被用于实现数据库的增删改查功能,并且包括了搭建SSH框架所需的jar包和详细步骤。 首先,SSH整合的准备工作包括下载并导入这三大框架的相应库文件,通常这些库会被打包到项目的lib目录下。在...

    SSH整合步骤说明

    这里我们主要探讨SSH整合的关键步骤,并结合提供的压缩包文件中的组件来解析其核心功能。 首先,让我们来看看Struts2。Struts2是MVC(Model-View-Controller)设计模式的实现,它提供了强大的动作调度、结果映射和...

    ssh整合所需所有架包

    SSH整合是Java开发中一种常见的框架集成方式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的企业级应用开发。这里提到的"ssh整合所需所有架包"是一个包含这三个框架相应版本的集合,确保它们...

    SSH整合经典实例

    5. **整合步骤**: SSH整合通常涉及以下步骤: - 配置Spring的Bean定义文件,声明各层组件及其依赖。 - 配置Struts的Action映射和结果页面。 - 配置Hibernate的实体映射文件(Hibernate.cfg.xml),设置数据库...

    SSH整合jar包

    SSH整合的核心在于将这三者有效地结合在一起,通常的集成步骤包括: 1. **配置Spring**:定义Bean,包括Service、DAO以及对应的实体类,通过XML或Java配置来管理依赖关系。 2. **配置Struts2**:创建Action类,实现...

    ssh框架整合步骤

    下面,我们将深入解析SSH框架的整合步骤。 ### 一、项目搭建 1. **创建Web项目**:在MyEclipse或Eclipse中创建一个新的Web项目,命名为“sshproject”。 2. **添加框架依赖**: - **Struts2**:下载并导入Struts...

    SSH整合实例源码

    开发者可以通过分析和运行这些源码,了解SSH整合的实现步骤和最佳实践。 6. **关键配置**: - **struts.xml**:定义了Struts 2的动作和结果,包括控制器的映射。 - **hibernate.cfg.xml**:配置数据库连接信息,...

Global site tag (gtag.js) - Google Analytics