Spring整合Hibernate(2)----注解方式
来源:互联网 发布:狄克斯特拉算法缺点 编辑:程序博客网 时间:2024/06/04 20:56
承接上一篇文章:《Spring整合Hibernate(1)-----applicationContext.xml 设值注入依赖方式》
这篇主要介绍一下Spring整合Hibernate(2)----注解方式:
和设置注入的依赖方式基本上一样,这里只讨论具体的不同点即可:
最大一个不同的点就是注解方式不需要写实体类的映射文件,直接使用配置实体类即可,Spring框架会自己帮我们完成实体类
到数据库表之间的ORM映射。而applicationContext.xml文件就需要写ORM映射文件。
注解方式下的applicationContext.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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--自动扫描包--> <context:component-scan base-package="com.test" /> <!--加载配置文件--> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> </list> </property> </bean> <!--配置连接池数据源--> <bean id="c3p0DataSource" destroy-method="close" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${driverClass}" /> <property name="jdbcUrl" value="${url}" /> <property name="user" value="${user}" /> <property name="password" value="${password}" /> <property name="initialPoolSize" value="${initialPoolSize}" /> <property name="minPoolSize" value="${minPoolSize}" /> <property name="maxPoolSize" value="${maxPoolSize}" /> <property name="maxIdleTime" value="${maxIdleTime}" /> </bean><!--配置sessionFactory--> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="c3p0DataSource" /> <property name="packagesToScan"> <list> <value>com.test.bean</value> <!--这里只需要配置bean即可--> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${dialect}</prop> <prop key="hibernate.show_sql">${show_sql}</prop> <prop key="hibernate.format_sql">${format_sql}</prop> <prop key="hibernate.use_sql_commants">${use_sql_comments}</prop> <prop key="hibernate.hbm2ddl.auto">${hbm2ddl.auto}</prop> </props> </property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true" /> <tx:method name="*" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="bizMethods" expression="execution(* com.test.biz.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethods" /> </aop:config> </beans>设置注入依赖的方式的applicationContext.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: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/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 让spring 去读取指定路径下的资源文件 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations" value="classpath:jdbc.properties"/> </bean> <!-- 配置c3p0连接池 --> <bean id="c3p0Source" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${driverClass}" /> <property name="jdbcUrl" value="${url}" /> <property name="user" value="${user}" /> <property name="password" value="${password}" /> <property name="initialPoolSize" value="${initialPoolSize}" /> <property name="minPoolSize" value="${minPoolSize}" /> <property name="maxPoolSize" value="${maxPoolSize}" /> <property name="maxIdleTime" value="${maxIdleTime}" /> </bean> <!-- 配置SessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="c3p0Source" /> <property name="mappingResources"> <list> <value>/com/cdzg/spring/bean/User.hbm.xml</value> <!-- 需要写ORM映射文件 --> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${dialect}</prop> <prop key="hibernate.hbm2ddl.auto">${hbm2ddl.auto}</prop> <prop key="hibernate.show_sql">${show_sql}</prop> <prop key="hibernate.format_sql">${format_sql}</prop> <prop key="hibernate.use_sql_comments">${use_sql_comments}</prop> </props> </property> </bean> <!-- 配置事务管理器 --> <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- 定义事务通知 --> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true"/> <tx:method name="*"/> </tx:attributes> </tx:advice> <!-- 定义事务切面,并应用事务通知 --> <aop:config> <aop:pointcut id="xxxBizImpl" expression="execution(* com.cdzg.spring.biz.*.*(..))"/> <aop:advisor pointcut-ref="xxxBizImpl" advice-ref="txAdvice"/> </aop:config> <bean id="userDaoImpl" class="com.cdzg.spring.dao.impl.UserDaoImpl"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <bean id="userBizImpl" class="com.cdzg.spring.biz.impl.UserBizImpl"> <property name="userDao" ref="userDaoImpl" /> </bean> <bean id="userAction" class="com.cdzg.spring.web.actions.UserAction"> <property name="userBiz" ref="userBizImpl" /> </bean> </beans>
读者自行对比上面两个applicationContext.xml配置文件,即可。
0 0
- Spring整合Hibernate(2)----注解方式
- spring+hibernate+iBATIS注解方式整合
- Spring 整合 Hibernate(注解方式)
- spring hibernate 整合 注解
- hibernate注解整合spring
- spring,hibernate,struts2三大框架注解方式整合案例
- 菜鸟如何简单整合hibernate+spring(注解的方式)
- springmvc+spring+hibernate 整合 annotation(全注解)方式
- 使用注解方式进行spring和hibernate整合
- 使用注解方式进行spring和hibernate整合
- 使用注解方式进行spring和hibernate整合
- spring 整合hibernate整合方式
- spring和hibernate注解整合
- ehcache整合spring注解方式
- ehcache整合spring注解方式
- struts、spring、hibernate整合方式
- Spring 整合 hibernate 的方式
- spring+hibernate Annotation方式整合
- java.io.EOFException
- redis string 命令
- Hough变换原理图
- Python核心编程---读书笔记:第10章 错误和异常
- Python核心编程---读书笔记:第11章 函数和函数式编程
- Spring整合Hibernate(2)----注解方式
- MyEclipse实用的快捷键
- 硬盘基础知识+MBR、GPT、Legacy BIOS、UEFI介绍(Windows系统分区)
- CSS-深入理解之float浮动
- [NetBeans]远程分析器设置
- Linux下configure,make,make install的意义
- G
- mysql中对sql的调优方法
- 【阿里云】 ECS Linux 云服务器中安装 rinetd 进行转发实现本地通过公网访问云数据库 Redis