java深入探究12-框架整合

1.Spring与Hibernate整合

  需要配置的就是hibernate和bean.xml

  1)关键点:sessionFactory创建交给SpringIOC;session的事务处理交给Spring的事务处理

  2)jar包:  

    连接池/数据库驱动包

    Hibernate相关jar

    Spring 核心包(5个)

    Spring aop 包(4个)

    spring-orm-3.2.5.RELEASE.jar【spring对hibernate的支持】

spring-tx-3.2.5.RELEASE.jar【事务相关】

  3)整合步骤:A:创建sessionFactory 的bean节点;B:对逻辑层的业务方法添加事务

    A:sessionFactory整合在Spring bean中的三种方式:

    1.全部hibernate.cfg.xml引入bean.xml中

    2.部分引入:dataSource连接池写在Spring中

    3.全部在bean.xml中写

    B:对逻辑层添加事务用aop事务方式

  4)例子:  

1.bean.xml
<?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:p="http://www.springframework.org/schema/p"
    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.xsd
          http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd
         http://www.springframework.org/schema/aop
         http://www.springframework.org/schema/aop/spring-aop.xsd
         http://www.springframework.org/schema/tx
          http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- dao 实例 -->
    <bean id="deptDao" class="dao.DeptDao">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- service 实例 -->
    <bean id="deptService" class="cn.itcast.service.DeptService">
        <property name="deptDao" ref="deptDao"></property>
    </bean>
    <!-- 数据源配置 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
        <property name="jdbcUrl" value="jdbc:mysql:///hib_demo"></property>
        <property name="user" value="root"></property>
        <property name="password" value="root"></property>
        <property name="initialPoolSize" value="3"></property>
        <property name="maxPoolSize" value="10"></property>
        <property name="maxStatements" value="100"></property>
        <property name="acquireIncrement" value="2"></property>
    </bean>

    <!-- ###########Spring与Hibernate整合  start########### -->
    <!-- 方式一:直接加载hibernate.cfg.xml文件的方式整合   这种方式 -->
    <!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
    </bean> -->

    <!-- 方式二:连接池交给Spring来生成【一部分配置写到hibernate中,一份分在spring中完成】 -->
    <!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
        <property name="dataSource" ref="dataSource"></property>
    </bean> -->

    <!-- 推荐 方式三:所有配置全部写到Spring配置中 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 连接池配置 -->
        <property name="dataSource" ref="dataSource"></property>
        <!-- hibernate常用配置会 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        <!-- hibernate映射配置 -->
        <!-- hibernate映射配置
        <property name="mappingLocations">
            <list>
                <value>classpath:entity/*.hbm.xml</value>
            </list>
        </property>
        -->
        <property name="mappingDirectoryLocations">
            <list>
                <value>classpath:entity/</value>
            </list>
        </property>

    </bean>

    <!-- ###########Spring与Hibernate整合  end########### -->
    <!-- 事务配置 -->
    <!-- a. 配置事务管理器类 -->
    <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- b. 配置事务增强(拦截到方法后如果管理事务?) -->
    <tx:advice id="txAdvice" transaction-manager="txManager">
        <tx:attributes>
            <tx:method name="*" read-only="false"/>
        </tx:attributes>
    </tx:advice>
    <!-- c. Aop配置 -->
    <aop:config>
         <aop:pointcut expression="execution(* service.*.*(..))" id="pt"/>
         <aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/>
    </aop:config>
</beans>     

2.SSH

<?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:p="http://www.springframework.org/schema/p"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.xsd      http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context.xsd         http://www.springframework.org/schema/aop         http://www.springframework.org/schema/aop/spring-aop.xsd         http://www.springframework.org/schema/tx      http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- dao 实例 --><bean id="deptDao" class="dao.DeptDao"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- service 实例 --><bean id="deptService" class="cn.itcast.service.DeptService"><property name="deptDao" ref="deptDao"></property></bean><!-- 数据源配置 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver"></property><property name="jdbcUrl" value="jdbc:mysql:///hib_demo"></property><property name="user" value="root"></property><property name="password" value="root"></property><property name="initialPoolSize" value="3"></property><property name="maxPoolSize" value="10"></property><property name="maxStatements" value="100"></property><property name="acquireIncrement" value="2"></property></bean><!-- ###########Spring与Hibernate整合  start########### --><!-- 方式一:直接加载hibernate.cfg.xml文件的方式整合   这种方式 --><!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation" value="classpath:hibernate.cfg.xml"></property></bean> --><!-- 方式二:连接池交给Spring来生成【一部分配置写到hibernate中,一份分在spring中完成】 --><!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation" value="classpath:hibernate.cfg.xml"></property><property name="dataSource" ref="dataSource"></property></bean> --><!-- 推荐 方式三:所有配置全部写到Spring配置中 --><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><!-- 连接池配置 --><property name="dataSource" ref="dataSource"></property><!-- hibernate常用配置会 --><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.hbm2ddl.auto">update</prop></props></property><!-- hibernate映射配置 --><!-- hibernate映射配置 <property name="mappingLocations"><list><value>classpath:entity/*.hbm.xml</value></list></property>--><property name="mappingDirectoryLocations"><list><value>classpath:entity/</value></list></property></bean><!-- ###########Spring与Hibernate整合  end########### --><!-- 事务配置 --><!-- a. 配置事务管理器类 --><bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- b. 配置事务增强(拦截到方法后如果管理事务?) --><tx:advice id="txAdvice" transaction-manager="txManager"><tx:attributes><tx:method name="*" read-only="false"/></tx:attributes></tx:advice><!-- c. Aop配置 --><aop:config> <aop:pointcut expression="execution(* service.*.*(..))" id="pt"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/></aop:config></beans>

时间: 2024-11-05 21:31:45

java深入探究12-框架整合的相关文章

Java EE互联网轻量级框架整合开发— SSM框架(中文版带书签)、原书代码

Java EE互联网轻量级框架整合开发 第1部分 入门和技术基础 第1章 认识SSM框架和Redis 2 1.1 Spring框架 2 1.2 MyBatis简介 6 1.3 Spring MVC简介 11 1.4 最流行的NoSQL——Redis 12 1.5 SSM+Redis结构框图及概述 13 第2章 Java设计模式 15 2.1 Java反射技术 15 2.2 动态代理模式和责任链模式 19 2.3 观察者(Observer)模式 30 2.4 工厂模式和抽象工厂模式 35 2.5

【j2ee spring】12、整合SSH框架(终结版)

[j2ee spring]12.整合SSH框架(终结版) 最后,我们把整个项目的截图,代码发一下,大家不想下载那个项目的话,可以在这里看到所有的代码(因为那个项目需要一个下载积分,真不多= =,我觉得我搞了那么久,收点积分应该不过分吧...嘿嘿) 这里,我尽量用截图来搞,免得复制粘贴,怪烦的 一.项目整体截图 二.开始全部代码 Person.java Person.hbm.xml PersonService.java package cn.cutter_point.service; import

【Java】Spring MVC 扩展和SSM框架整合

开发web项目通常很多地方需要使用ajax请求来完成相应的功能,比如表单交互或者是复杂的UI设计中数据的传递等等.对于返回结果,我们一般使用JSON对象来表示,那么Spring MVC中如何处理JSON对象? JSON对象的处理 使用@ResponseBody实现数据输出 要使用JSON,所以导一下JSON工具包.JSON工具包,密码4i0l. Controller层代码示例(这里使用的是阿里巴巴的 fastjson): 1 /** 2 * 判断注册时用户编码是否唯一 3 * @param re

JAVA框架整合(struct+spring+jpa)之utf8mb4

基于mysql数据库整合框架时出现的数据库字符编码的问题. 解决办法:数据库驱动的版本太高,换成低版本的,主要还是你的架包太不是最新版本,出现的兼容性问题. JAVA框架整合(struct+spring+jpa)之utf8mb4,布布扣,bubuko.com

SSM框架 SSM项目源码 SSM源码 下载 java框架整合Springmvc+mybatis+shiro+bootstrap

获取[下载地址]  QQ: 313596790A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势D 集成安全权限框架shiro  Shir

SSM框架 SSM项目源码 SSM源码 java框架整合Springmvc

获取[下载地址]   QQ: 313596790   [免费支持更新]A 代码生成器(开发利器);全部是源码     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势C 安全权限框架shiro ;  Shiro 是一个用

java最新框架整合 springmvc+mybatis+shiro+maven 代码生成器

1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库访问) 2. 提供高并发JMS消息处理机制 3. 所有功能模块化.所有模块服务化.所有服务原子化的方式,提供可拓展的服务模型,使程序稳定运行,永不宕机 4. 提供Wink Rest.Webservice服务,故可作为独立服务平台部署 框架整合: Springmvc + Mybatis + Shiro(权限) + REST(服务)

java框架整合Springmvc+mybatis+shiro+lucene+rest+webservice+maven

1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库访问) 2. 提供高并发JMS消息处理机制 3. 所有功能模块化.所有模块服务化.所有服务原子化的方式,提供可拓展的服务模型,使程序稳定运行,永不宕机 4. 提供Wink Rest.Webservice服务,故可作为独立服务平台部署 框架整合: Springmvc + Mybatis + Shiro(权限) + REST(服务)

【java高并发 大数据企业架构框架整合】Springmvc+mybatis+shiro+lucene+rest+webservice+maven

1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库访问) 2. 提供高并发JMS消息处理机制 3. 所有功能模块化.所有模块服务化.所有服务原子化的方式,提供可拓展的服务模型,使程序稳定运行,永不宕机 4. 提供Wink Rest.Webservice服务,故可作为独立服务平台部署 框架整合: Springmvc + Mybatis + Shiro(权限) + REST(服务)