Day04SSM第四次笔记---Spring整合mybatis、JUnit,AOP和事务的学习

目录

一、Spring整合MyBatis 28

​编辑 总结:

 二、整合JUnit 30

 总结:

三、AOP简介 31

3.1AOP核心概念 31

总结:

3.2AOP入门案例 32

3.2.1AOP入门案例思路分析  32

 总结:

3.3AOP工作流程  33

总结:

 3.4AOP切入点表达式 34

 3.4.1AOP语法格式 

 总结:

 3.5AOP通知类型 35

总结:

 3.6案例---测量业务层接口万次执行效率 36

3.7AOP通知获取数据 37

3.7.1获取参数

3.7.2   AOP通知获取异常数据:(了解)

 总结:

3.8案例---百度网盘密码数据兼容处理 38

 3.9AOP总结 39

4四、Spring事务简介 40

4.1案例--模拟银行账户间接转账业务

 总结:

4.2Spring事务角色 41

4.2.1Spring事务管理员 41

4.3事务相关配置 42

4.3.1案例---转账业务追加日志 

 4.3.2事务的传播行为 


一、Spring整合MyBatis 28

  

 总结:

 二、整合JUnit 30

如果想要测试一下junit,在test下进行测试的话,则需要在poml.xml中进行相关的依赖增加。 如下所示。

 

 在整合测试junit程序中,设定类运行器需要添加注解@RunWith(SpringJUnit4ClassRunner.calss)

该类是整个Spring整合JUnit的专用类运行器。

主要就是记忆这两个注解即可。

 总结:

三、AOP简介 31

3.1AOP核心概念 31

  

连接点:原始的方法叫做连接点:就是原来既有的制作功能。

切入点:对于在原来的方法(即功能上):增加一些其他的功能。

通知:增加的功能 

切面:将通知与连接点之间进行衔接。即将新增加的功能增加到需要被增加的方法上。实质上就是引导的作用。

通知类:是自己增加的方法所依赖的地方,即类。方法是在类中进行产生的。产生这种方法的类就叫做通知类。

注:

1、AOP是面向切面的编程,实际上就是这个上图中的切面。

2、连接点的范围大,切入点的范围小,连接点包含切入点

总结:

3.2AOP入门案例 32

3.2.1AOP入门案例思路分析  32

代码具体步骤操作: 

 

 

代码编写步骤:

步骤一:

在pom.xml中导入aspectjweaver

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.4</version>
        </dependency>

步骤二:基本的操作。 

步骤三:创建aop下的类,即制作通知类和通知(增加功能)。

 步骤四:创建切点注解@Pointcut(“找到需要的接入点的位置描述”)

这一小步是将切入点执行的位置确定 

在共性的功能即通知,在什么位置前执行,何时执行

步骤五: 关系绑定

 处理完上述的操作后还需要在通知类中进行以下两个小操作,如下所示:

添加@Component:告诉程序下面的内容能够被Spring控制,Spring能够将下main的内容造成bean

@Aspect:告诉Spring我下面的程序内容是AOP

在SpringConfig中需要添加@EnableAspectJAutoProxy:告诉配置程序当中存在考注解开发的AOP,在本文中就是激活在通知类中Aspect。

结果:

 总结:

3.3AOP工作流程  33

 

注:AOP内部实际上是通过代理模式实现的 

 

 

总结:

 3.4AOP切入点表达式 34

 3.4.1AOP语法格式 

描述方式:

 AOP切入表达式: 

 使用通配符描述切入点:

 注:一个*任意参数表示有一个任意参数。如果接口或者类中方法没有参数则不会实现成功。

书写技巧: 

 总结:

 

 3.5AOP通知类型 35

五种AOP的通知注解注意:

 

主要是学习五种AOP的通知注解。

1、@Before("pt()"):在接入点之前发布

2、@After("pt()"):在接入点之后发布

3、@Around("pt()"):在接入点前后发布,环绕控制。不过在使用环绕注解是,需要进行对谁前和谁后进行一个标识调用。操作如下:。注:如果不添加这个步骤的处理,则会出现将原始操作进行隔离。

在AOP中使用注解@Around,对原始数据进行环绕处理时,被处理的原始内容存在返回值的情况的异常。

异常:

在@Around注解中首先修改返回值类型为Object()

其次,需要再添加返回值,来处理原始数据的返回值内容。 

4、@AfterReturning("pt2()"):出现异常该注解不执行。

5、@AfterThrowing("pt2()"):出现异常该注解才执行

总结:

 

 3.6案例---测量业务层接口万次执行效率 36

对应的代码程序: 

注:使用签名信息获取具体的接口和方法信息。

3.7AOP通知获取数据 37

3.7.1获取参数

注:

1、参数是每个通知都能够获取得到的,无论最终程序是否正确的执行,方法的参数是每个都能够进行调用使用的。

2、返回值是不一定都能够通过通知而获取得到的。这得取决于是否能够方法是否能够正常执行。即原始操作能够正常执行,才能够获取得到返回值

AOP通知获取参数数据: 

各通知获取参数的信息的具体介绍:

1、@Before获取参数信息

 结果:

 方法参数发生改变,就会如下所示:

2、@After获取参数信息

输出结果:

 3、@Around通知获取参数

实际上在原来的proceed中含有参数信息。

可以利用这一功能进行对来自 主程序中的参数先进行一个处理,然后再将数据进行传输。下面的结果原来的主程序中的ID设置的输入为100,结果给参数进行提前处理后,结果如我们输出的成绩一样,是666.

结果:

3.7.2   AOP通知获取异常数据:(了解)

  AOP通知获取异常数据:(了解)

获取返回值: 

1、@Around通知可以获取返回值

2、@AfterReturning通知可以获取返回值。

注:JoinPoint的使用处理,若存在,必须是在第一位

 3、@AfterThrowing通知来接收异常的对象。

 总结:

3.8案例---百度网盘密码数据兼容处理 38

处理:密码输出时:密码后面的空格的处理。

 3.9AOP总结 39

 

 

 

4四、Spring事务简介 40

数据双方实质上就是同成功同失败。 

 

注:实质就是在service业务层进行操作,实现将业务层中方法的数据层操作放到一个事务中进行管理让其进行同成功同失败。 

4.1案例--模拟银行账户间接转账业务

 

为实现同成功同失败的效果,需要开启事务

银行转账处理开启事务的操作:

 

 

开启事务实现步骤:

步骤一:AccountService接口中配置。开启事务。在服务端的接口处添加:注解@Transactional:表示开启事务

注:在接口上进行处理之后,就不用管这个接口上的事务的事情了

步骤二:注入数据内容。 JdbcConfig中配置 

一个bean需要外部注入的方法:

在配置中进行参数设置,然后导入提供给所需要的注入位置 

步骤三:SpringConfig中配置。

解决让Spring知道自己使用注解的方式开启的事务管理。

 总结:

4.2Spring事务角色 41

4.2.1Spring事务管理员 41

 

 注:目前只有一个事务。如果出现异常,此时可以进行事务回滚。同成功同失败的结果。

注:相同的数据源,把这些联系到了一起。以上事务角色也是实现同成功同失败的原因。 

4.3事务相关配置 42

对于Spring的事务如果要做精细化的管理。开启事务管理有以下的属性。

 

rollbackFor的异常处理。 

作用:遇到以下的异常,会要对事务进行回滚处理。 

4.3.1案例---转账业务追加日志 

注意操作:

某个程序一定进行操作的处理。使用

try
{
... ...}//可能操作的程序
finally
{
... ...}//一定被执行的程序

 4.3.2事务的传播行为 

就是本应该同属于同一个事务的,但是它不想参与这个事务,有自己的任务处理

解释:就是1对于2的态度,是加入1所开启的事务,还是自己打算开启一个新的事务或者加入1所开启的事务。

步骤:

使用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值