栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

AOP处理请求(1)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AOP处理请求(1)

AOP简单使用

aop意为面向切面编程,它是spring框架中的一个重要内容。它通过给程序定义一个切入点,然后在其前后切入不同的执行内容。

它不会破坏原来的程序逻辑。

通常用于:日志记录、事务管理、安全检查和资源控制。

现在来看一个使用例子:一次业务流可以分为四步,请求(前端)——接收(Contorller)——处理(Services)——(Dao)——返回。

首先:添加依赖


     
         org.springframework.boot
         spring-boot-starter-aop
     

接着:编写aop实验类

@Aspect//标注其为一个aop
@Component//持久层、业务层和控制层分别採用 @Repository、@Service 和 @Controller 对分层中的类进行凝视,而用 @Component 对那些比較中立的类进行凝视
public class LogAspect {
    private final Logger logger= LoggerFactory.getLogger(this.getClass());

    
    @Pointcut("execution(* com.gyy.springbootadvanced.web.LogTextApi.log(..))")
    public void log(){
    }

    @Before("log()")
    public void doBefore(){
        logger.info("----------------doBefore1______________");
    }
    
    @After("log()")
    public void doAfter(){
        logger.info("----------------doAfter2_________________");
    }

    
    @AfterReturning(returning="result",pointcut="log()")
    public void doAfterReturn(Object result){
        logger.info("----------------doAfterReturn______________内容:{}",result);
    }
}

另附log()方法,这个controller类里写一些控制台输出即可,没有规定。

@RestController
public class LogTextApi {
    
    private final Logger logger= LoggerFactory.getLogger(this.getClass());

    @GetMapping("/log")
    public String log(){
        logger.info("info___log");
        logger.warn("warn___log");
        logger.error("error___log");
        logger.debug("debug___log");
        logger.trace("trace___log");
        return "logtext";
    }
}

最后运行程序,得到控制台输出结果如下。

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750717.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号