SpringAOP面向切面注解优化业务代码,以及Spring-test+Junit自测

在spring AOP中业务逻辑仅仅只关注业务本身,将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,将它们独立到非业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。

当前业务代码缺点:举例UI接口的鉴权, 对于当亲UI接口的鉴权方式很不统一, 散落在各个接口的内部处理中,降低了代码的可读性,耦合性很高,代码结构不清晰,业务与公共方法耦合严重,需要将公共处理与业务处理解耦,通过AOP面向切面注解的方式,只需在接口上添加注解即可实现鉴权,无需接口内部处理,提高接口开发效率,减少冗余代码

Spring AOP的源码及JDK代理、CGLIB代理这里不再分析,聚焦于具体实现

开发对象:Spring容器管理对象,规范统一的接口(后期开发需要关注接口开发,尽量保持规范统一,容易扩展)

Spring AOP业务具体实现:

1、Pom下导入依赖Jar包

				<dependency>
				    <groupId>org.aspectj</groupId>
				    <artifactId>aspectjweaver</artifactId>
				    <type>jar</type>
				</dependency>
				<dependency>
				    <groupId>org.aspectj</groupId>
				    <artifactId>aspectjrt</artifactId>
				    <type>jar</type>
				</dependency>

2、在application.xml中配置aop代理
通过aop命名空间的<aop:aspectj-autoproxy />声明自动为spring容器中那些配置@aspectJ切面的bean创建代理,织入切面。
aop:aspectj-autoproxy/
3、自定义注解
在这里插入图片描述
4、编写AOP切面类
在这里插入图片描述

5、定义切点,将自定义注解应用在定义切点处
在这里插入图片描述
将业务代码与鉴权、日志记录、安全控制、异常处理等事务进行分离,做到业务逻辑与公共事务解耦,减少冗余代码、提高接口开发、业务开发效率,将日志记录、安全控制、异常处理、鉴权等抽成一个统一处理方式,不仅解决了开发效率问题,优化代码结构,减少冗余代码,同样有利于后期维护,问题定位。

修改完成后,可以利用Spring-test+junit 在本地进行自测,之后再端到端进行自验,提高自验效率,基于Spring-test +junit的简单自测实现如下:

1、POM文件下导入依赖的Spring-test JAR包

				<dependency>
				    <groupId>org.springframework</groupId>
				    <artifactId>spring-test</artifactId>
				    <version>3.2.4.RELEASE</version>
				    <scope>provided</scope>
				</dependency>

2、在Spring XML中定义需要Spring管理的对象
在这里插入图片描述

3、定义要测试测类对象,以及要切入的方法

在这里插入图片描述

4、利用Spring-test+junit编写测试demo,运行demo,进行自测
在这里插入图片描述

5、如果未走到切面类的方法,则编写切面有BUG,需要本地排查代码问题,通过Spring-test+junit的方式能快速定位代码低级错误,提高开发效率,节省开发时间

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值