Spring的点点滴滴之aop
发布日期:2021-06-29 01:16:36 浏览次数:2 分类:技术文章

本文共 2158 字,大约阅读时间需要 7 分钟。

我个人对aop的理解就是在不改变原有代码的基础上嵌入一些公共的服务,aop的本质就是动态代理

在使用aop之前先要导入两个架包:
这里写图片描述
之后就是配置文件的一些配置,如下:
加入这些:

xmlns:aop="http://www.springframework.org/schema/aop"http://www.springframework.org/schema/aop        http://www.springframework.org/schema/aop/spring-aop.xsd"

之后就是代码部分

首先是service这个专注于业务

public class userServiceImpl implements userService{
@Override public void add() { // TODO Auto-generated method stub System.out.println("添加用户"); } @Override public void delete() { // TODO Auto-generated method stub System.out.println("删除用户"); } @Override public void update() { // TODO Auto-generated method stub System.out.println("更新用户"); } @Override public void search() { // TODO Auto-generated method stub System.out.println("搜索用户"); }}

之后就是写要嵌入的公共服务

public class Log implements MethodBeforeAdvice{
@Override public void before(Method method, Object[] args, Object target) throws Throwable { // TODO Auto-generated method stub System.out.println(method.getName()+"........."+target.getClass().getName()); }}

这里这个类要实现MethodBeforeAdvice这个借口,然后这个类中的方法就会在service中的方法执行前执行了

之后就是beans.xml的配置了

上面就是一种aop的实现方法

接下来是aop的第二种实现方法,service不变,但是公共服务的类要改变一下,此时不实现一些借口

public class Log{    public void before()    {        System.out.println("在方法执行前执行");    }}

之后就是beans.xml的配置方式发生一些改变

aop的第三种实现方式使用注解的形式实现的,这里beans.xml

的配置方式和以前不同了,代码如下:

只需要在配置文件中加入这个就行

但是在写公共服务类的时候的时候需要用到注释了

@Aspectpublic class Log{    @Before("execution(* com.yonyou.service.impl.*.*(..))")    public void before()    {        System.out.println("在方法执行前执行");    }    @After("execution(* com.yonyou.service.impl.*.*(..))")    public void after()    {        System.out.println("在方法执行之后执行");    }    @Around("execution(* com.yonyou.service.impl.*.*(..))")    public Object round(ProceedingJoinPoint pj) throws Throwable    {        System.out.println("环绕前置性");        Object object=pj.proceed();        System.out.println("环绕之后执行");        return object;    }}

上面就是我最近所学,如有不对欢迎大家指出

转载地址:https://blog.csdn.net/ys3198/article/details/53398352 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android 使用广播的风险
下一篇:Spring的点点滴滴之动态代理

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月16日 23时33分56秒