AOP、过滤器、拦截器

AOP:
最常用来身份校验、打日志、
也可以写xml里,但是建议写在java里
@Aspect
@Component
@Before:执行前
@Around:执行前,执行后

同时匹配两个,||

执行某个函数前后、做一些事


// 会被注册成切面,这样方法才会在事件发生的时候执行
@Aspect
// 自动注册成 spring bean,这样 spring 就能认得出这个类
@Component
// Aspect 切面:注册事件,在某类事情发生的时候调用
public class PermissionAspect {
    private UserService userService;
    private TopicService topicService;
    private HttpServletRequest request;

    public PermissionAspect(UserService service, TopicService topicService, HttpServletRequest request) {
        Utility.log("PermissionAspect 注入需要的依赖", request, service);
        this.request = request;
        this.userService = service;
        this.topicService = topicService;
    }


    // @Before("execution(* kybmig.ssm.controller.TodoController.*(..))")
    // public void matchSingle() {
    //     Utility.log("最简单的单方法匹配 %s", request.getRequestURI());
    // }


    @Around("execution(* kybmig.ssm.controller.TodoController.index(..)) || execution(* kybmig.ssm.controller.TodoController.add(..))")
    public ModelAndView matchSingle(ProceedingJoinPoint joint) throws Throwable {
        Utility.log("路由函数之前执行 %s", request.getRequestURI());

        // 这一句就是在执行路由函数
        ModelAndView result = (ModelAndView) joint.proceed();

        Utility.log("路由函数之后执行 %s", request.getRequestURI());
        return result;
    }

    @Around("execution(* kybmig.ssm.controller.TopicController.*(..)) ||execution(* kybmig.ssm.controller.WeiboController.*(..)) ")
    public ModelAndView loginRequired(ProceedingJoinPoint joint) throws Thro
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值