收藏 分销(赏)

SSH事物注解.doc

上传人:xrp****65 文档编号:8542677 上传时间:2025-02-17 格式:DOC 页数:3 大小:47KB 下载积分:10 金币
下载 相关 举报
SSH事物注解.doc_第1页
第1页 / 共3页
SSH事物注解.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
  详解SSH注解配置,bean注解、事物注解等 分类: SSH2012-11-15 11:53 264人阅读 评论(0) 收藏 举报 springSpringSpring的Bean注解模式SSH注解配置详解 今天屌丝跟大家来评论评论SSH注解配置中的几种注解模式,切入正题: 使用过SSH注解的屌丝们都知道,要想使用注解需要在applicationContext.xml配置文件里面开启注解配置,开启方式如下: 1.头部声明需加入 xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-3.0.xsd 2.文件内部配置 <context:annotation-config />  <!--打开注解模式  --> <context:component-scan base-package="com.newer" /> <!-- 开启自动扫描Bean,一般配到基础包即可。使用这个可以不配置-打开注解模式 --> Bean注解管理 Spring自动扫描管理Bean注解有四种配置模式,如下 @Service     用于业务层(service) 示例:@Service("baseService") @Controller  用于控制层(action)  示例:@Controller("baseAction") @Repository  用于数据访问层(dao) 示例:@Repository("baseDao") @Component   泛型配置(当组件不确定时用),以上3种配置是基于此扩展 推荐不同分层采用对应的配置,切忌所有配置都使用@Component   Spring事物注解配置 <!-- xml,@事务配置 --> <bean id="hibernateTransaction" class="org.springframework.orm.hibernate3.HibernateTransactionManager">  <property name="sessionFactory">   <ref bean="sessionFactory" />  </property> </bean> <tx:annotation-driven transaction-manager="hibernateTransaction" proxy-target-class="true" /> @Transactional            //默认事务配置 @Transactional(rollbackFor=Exception.class) //出现Exception异常也回滚 @Transactional(noRollbackFor=Exception.class) //出现Exception异常不回滚 @Transactional(readOnly=true) //只读,性能优化,效率高 @Transactional(propagation=Propagation.NOT_SUPPORTED)  //不开启事务 @Transactional(propagation=Propagation.REQUIRED) //如果有事务,那么加入事务,没有的话新建一个(不写的情况下) @Transactional(propagation=Propagation.NOT_SUPPORTED) //容器不为这个方法开启事务 @Transactional(propagation=Propagation.REQUIRES_NEW) //不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务 @Transactional(propagation=Propagation.MANDATORY) //必须在一个已有的事务中执行,否则抛出异常 @Transactional(propagation=Propagation.NEVER) //必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反) @Transactional(propagation=Propagation.SUPPORTS) //如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务. @Transactional(propagation=Propagation.NESTED) @Transactional(propagation = Propagation.REQUIRED,readOnly=true) //readOnly=true只读,不能更新,删除 @Transactional(propagation = Propagation.REQUIRED,timeout=30)//设置超时时间 @Transactional(propagation = Propagation.REQUIRED,isolation=Isolation.DEFAULT)//设置数据库隔离级别 注解事物是可以依赖类继承而继承的,例如某个service继承了baseService,那么它也会继承baseService的事物声明 屌丝们可以根据不同需求配置不同事物传播属性,下面是常见的事物隔离级别和传播属性: 1.事务的隔离级别 DEFAULT 采用数据库默认隔离级别 READ_UNCOMMITTED 读未提交数据( 会出现脏读,不可重复读,幻读 ,避免了 第一类丢失 更新 ) READ_COMMITTED 读已提交的数据(会出现不可重复读,幻读) REPEATABLE_READ 可重复读(会出现幻读) SERIALIZABLE 串行化               2. 事务的传播属性 REQUIRED 需要事务,存在:加入,不存在:自己创建.这是spring默认的传播行为. SUPPORTS 支持事务, 存在:加入,不存在:不使用事务 MANDATORY 只能在一个已存在事务中执行,业务方法不能发起自己的事务,如果业务方法在没有事务的环境下调用,就抛异常 REQUIRES_NEW 业务方法总是会为自己发起一个新的事务,如果方法已运行在一个事务中,则原有事务被挂起,新的事务被创建,直到方法结束,新事务才结束,原先的事务才会恢复执行. NOT_SUPPORTED 声明方法需要事务,如果方法没有关联到一个事务,容器不会为它开启事务.如果方法在一个事务中被调用,该事务会被挂起,在方法调用结束后,原先的事务便会恢复执行. PROPAGATION_NEVER 声明方法绝对不能在事务范围内执行,如果方法在某个事务范围内执行,容器就抛异常.只有没关联到事务,才正常执行. NESTED 嵌套事务(一般数据库不支持)    
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服