百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

spring框架快速入门AOP及事务管理

ccwgpt 2024-11-06 09:42 27 浏览 0 评论

AOP技术:

主要的应用是权限系统 cglib-nodep.jar也可创建代理对象,不要求目标类不一定要实现接口。

横切性关注点:对哪些方法进行拦截,拦截到做些什么事情,这些思考步骤叫横切性关注点。

Aspect(切面):指横切性关注点的抽象,它与类相似,只是两者的关注点不一样,类是对物体特征的抽象,而切面是横切性关注点的抽象。

joinpoint(连接点):指那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点,实际上joinpoint还可以是field或类构造器。

Pointcut(切入点):指我们要对那些joinpoint进行拦截的定义。

Advice(通知):指拦截到joinpoint之后要做的事情。

Target(目标对象):代理的目标对象。

Weave(织入):指将aspects应用到target对象并导致proxy对象创建的过程。

Introduction(引入):在不修改类代码的前提下,可以在运行期为类动态地添加一些方法或Field.

spring面向切面aop编程:

<beans 
   xmlns:aop="http://www.springframework.org/schema/aop" 
   xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> 
</beans>

可以使用注解或xml配置文件开发aop,如果是使用注解,则aop:aspectj-autoproxy/

@Pointcut("execution(* com.example.service...(..))") 
// 第一个代表返回值类型,..代表包与子包下的所有类 
// 第二个代表所有类 
// 第三个*代表所有的方法 ..代表随意的方法参数

spring+jdbc组合开发步骤:

1.配置数据源

<bean id="dataSource" 
      class="org.apache.commons.dbcp.BasicDataSource" 
      destroy-method="close"> 
   <property name="driverClassName" vaule=""/> 
   <property name="url" value=" "/> 
</bean> 

2.配置事务 需要在配置文件内引入用于声明事务的tx命名空间,事务的配置方式有两种:注解和xml配置文件。

注解方式:

<beans 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation="http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
    
    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
      <property name="dataSource" ref="dataSource"/> 
    </bean> 
    <!--采用@Transactional声明式事务 --> 
    <tx:annotation-driven transaction-manager="txManager"/>
</beans>

spring默认checked exception事务不会roll back。运行期异常一般叫uncheck Exception会roll back. 可以使用@Transactional(noRollbackFor=Exception.class)进行修改。

不需要的事务要注明:

@Transactional(propagation=Propagation.NOT_SUPPORTED)

REQUIRED:业务方法需要在一个事务中运行。默认!如果方法运行时,已经处在一个事务中,那么加入到该事务,否则为自己创建一个新的事务。

NOT_SUPPORTED:声明方法不需要事务。

REQUIRESNEW:属性表明不管事务是否存在,业务方法总会为自己开启一个新的事务。

MANDATORY:指定业务方法只能在一个已经存在的事务中执行,业务方法不能发起自己的事务。如果业务方法在没有事务的环境下调用,容器会抛出异常。

SUPPORTS:如果业务方法在某个事务范围内被调用,则方法成为该事务的一部分。如果业务方法在事务范围外被调用,则方法在没有事务的环境下执行。

Never:指定业务方法绝对不能在事务范围内执行,否则抛出异常。

NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中。如果没有活动事务,则按REQUIRED属性执行。

timeout:事务的超时时间。

相关推荐

如何基于Spring Security框架实现权限管理

SpringSecurity是一个功能强大且高度可定制的身份验证和访问控制框架,用于保护基于Spring的应用程序。SpringSecurity主要是从两个方面解决安全性问题:web请求级别:使...

一个轻量级 Java 权限认证框架,Sa-Token 让鉴权变得简单、优雅!

一、框架介绍Sa-Token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权等一系列权限相关问题。官网文档:...

16.3K Star!简洁高效的Java权限认证与会话管理框架——Sa-Token

简介今天给大家推荐一个轻量级的Java权限认证框架——Sa-Token。它可以为JavaWeb应用同完整的权限认证解决方案,它的目标是简化权限管理和登录认证的流程,具备高度灵活性和简单易用的特点。S...

从Shiro迁移到Sa-Token:老版JeecgBoot项目权限框架平滑升级方案

背景介绍对于许多维护老版JeecgBoot项目的开发者来说,权限框架的升级一直是个棘手问题。这篇文章分享一种实用的方案,用于将老版JeecgBoot中的ApacheShiro替换为更现代的Sa-To...

刑法框架体系,对照着框架体系学习可以事半功倍哦

有了它,妈妈再也不用担心我司考过不啦!有了它,妈妈再也不用担心我司考过不了啦!其他部门法正在陆续整理制作中哦看不清的话请戳http://mp.weixin.qq.com/s?__biz=MzA3NDE...

全新体验版Windows QQ上线,实现三端统一

7月3日,全新体验版WindowsQQ正式上线官网,面向用户开放官方下载渠道。记者从腾讯获悉,继QQ对macOS、Linux版本进行升级后,本次Windows版本的更新,标志QQ基于NT技术架构...

农村自建房造价多少?包工头教你怎么算

通常我们在找专业人士设计农村自建房设计图时,不管你是打算建独栋一层别墅还是独栋二层别墅或是独栋三层别墅,你是否也找他们打听过相应的房屋工程造价呢?下面简单介绍一下农村自建房的傻瓜式造价估算:1、砖混结...

QQ大会员品牌运营策划与设计(qq大会员有哪些个性装扮)

编辑导语:在互联网产品越来越同质化的今天,做出有差异性和符合品牌调性的设计是品牌运营过程中需要重视的问题。本文作者从QQ大会员品牌项目实践出发,分享了品牌运营设计过程中遇到的一些问题以及具体操作方案,...

支持鸿蒙平台,腾讯视频ovCompose跨平台框架发布

IT之家6月3日消息,腾讯开源今日官宣发布腾讯视频ovCompose跨平台框架,其是腾讯大前端领域Oteam中,腾讯视频团队基于ComposeMultiplatform生态推出的...

腾讯 QQ Mac 版推倒重做,全新 1.0 版本开启内测

IT之家9月1日消息,据多位IT之家小伙伴投稿,腾讯QQMac版近日迎来了全新通用版内测,版本号重新由1.0开始,目前放出的体验版为1.0.4-305。从下图可以看到,该版本在U...

全新体验版Windows QQ正式上线官网,实现三端统一

7月3日,全新体验版WindowsQQ正式上线官网,面向用户开放官方下载渠道。记者从腾讯获悉,继QQ对macOS、Linux版本进行升级后,本次Windows版本的更新,标志QQ基于NT技术架构...

QQ,到了不能不变的境地(怎么发qq邮件到别人邮箱)

相比微信一个小更新,乃至一个小动作,都能上热搜的顶级热度。隔壁的老大哥QQ,显得有些冷清。即使更新再快,功能再激情,都很难引起用户们的集体讨论。机友们细想一番,咱们的老朋友QQ,有多久没上过热搜啦?真...

基于Electron框架全面重做:全新Linux版QQ开启公测

来源:快科技不久前,腾讯QQ项目组曾发布预告,宣布QQforLinux新版本即将开启公测。现在,新的Linux版QQ已经开启公测,不过目前仅支持x86架构,arm64架构还仍在适配中。与此前极为简...

QQ全面升级?基于Electron技术的Windows内测版本预计将于明年推出

在2022年,作为经典的聊天软件的QQ在经历多次的功能调整后,正式选择基于新技术开发新版本的QQ。今日,据相关媒体报道,腾讯QQ项目组发布预告:QQforLinux将在本周迎来公测,全新的QQf...

跨平台三端重构正式统一,QQ Windows全新体验版上架官网

7月3日,全新体验版WindowsQQ正式上线官网,面向用户开放官方下载渠道。继QQ对macOS、Linux版本进行升级后,本次Windows版本的更新,标志QQ基于NT技术架构,实现了桌面端Q...

取消回复欢迎 发表评论: