Spring AOP的简单项目搭建及简单理解

Spring AOP的简单项目搭建及简单理解

第一个纯手AOP项目 记录下 遇到的报错 及解决方案(慢慢整理版)
1.Spring 报错
Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5
直接运行不是本地源码时出现 原因是maven 配置出错 在project setting 中修改
2. Spring 报错
Unmapped Spring configuration files found
之前在项目搭建了xml配置但是没有交给spring管理 解决方案是在Project structure 中建立module 把unmapped的文件都给spring管理
3.aop 配置
3.1 aop配置
在pom.xml中配置依赖时应注意 除了配置spring-aop外,还需要配置动态和静态代理两种包(因为springAop本质是对这三种方法进行封装)

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.3.13.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.8.9</version>
        </dependency>
        <!-- http://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.9</version>
        </dependency>
        <!-- http://mvnrepository.com/artifact/cglib/cglib -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>3.2.2</version>
        </dependency>

使用xml配置项目时开启aop自动代理

<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

4.aop使用
简单来说 aop的使用就是 首先用一个接口定义非核心方法 再由一个或多个类实现这些非核心方法 之后再建一个aspect类(切面)来管理aop的增强业务
首先在aopproxy的头部声明自己是切面@Aspect
然后将需要切入的对象注入到aopproxy
例如private UserCache userCache;
接着声明切点
这个项目中我使用基于注解的切入方式
即@After@Before@AfterThrowing@Around@AfterRetrunning
这里我采用直接在注解处声明切点的方式,即
@After("excecution()")
注意*不能和后面的地址连在一起其中"excecution(
)"的*表示所有都控制;
也可以在前面用@Poincut声明切点 后面再在After直接调用切点例如

private final String POINT_CUT = "execution(* com..service.*.*(..))";
@Pointcut(POINT_CUT)
    public void pointCut(){}
@After(value="pointCut()")

在AOP中获取参数和进行拦截

参考链接https://blog.csdn.net/qq_15037231/article/details/80624064

断言assert的使用

例如

assert(userServiceI.login("",""));

如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值