使用注解来开发登录检查的切面功能
1、自定义
注解:我们自定义一个自己的注解,用于标识需要切入的方法
切面:配置一个切面,@Around(“@annotation(abc)”)标识所有标识了我们配置的注解的方法都做一个环绕切入,因为我们在业务处理中可能需要用到登录的用户信息,因此需要在切面中把从数据库中拿到的用户信息传入到Controller,而环绕切入可以修改Controller中方法的参数,因此使用@Around环绕切入
自定义异常:自己定义一个比如NoLoginException之类的异常用于处理该切面中可能发生的错误
全局异常处理:再用同样的步骤配置一个发送邮件的后置切面,将异常信息发送给开发者
2、具体实现
@Around("@annotation(clk)")
public Object checkLoginBefore(ProceedingJoinPoint joinPoint, CheckLogAnnotation clk) throws Throwable {
//将Userinfo传入到连接点中
Object[] args = joinPoint.getArgs();
args[0] = userInfo;//调用目标方法的同时传递参数
Object result = joinPoint.proceed(args);
return result;
}
使用注解来开发登录检查的切面功能相关推荐
- SPRING注解驱动开发-雷神课程超详细笔记
SPRING注解驱动开发-雷神课程超详细笔记 时间:2021-03-21 2022-04-06更新:最近翻起一年多前写的笔记复习,还是收获颇多,很多当时无法理解的知识现在慢慢能理解了,可能是工作一年的 ...
- android 常用注解,Android 开发小工具之:注解 Annotation
Android Support 包之一的 support-annotations是通过静态编译检测来提高代码质量的一个注解工具.里面包含了 Android 开发中常用的代码检测注解,帮助开发者提高代码 ...
- OA系统八:用户登录一:基于LayUI框架开发登录页;
本篇博客就需要明白三点: (1)前端的东西,贵在[没事多试试]:多试试,看看效果,反复多次,总能看到希望的效果啦.没什么意思,没必要每个细节都深记:在实际中遇到一个业务的时候,多看官方文档的例子,多试 ...
- Spring注解驱动开发第26讲——总有人让我给他讲讲@EnableAspectJAutoProxy注解
@EnableAspectJAutoProxy注解 在配置类上添加@EnableAspectJAutoProxy注解,便能够开启注解版的AOP功能.也就是说,如果要使注解版的AOP功能起作用的话,那么 ...
- 【编程不良人】快速入门Spring学习笔记08---事务属性、Spring整合Structs2框架(SM)、Spring整合Mybatis+Struts2(SSM)、Spring注解、SSM注解式开发
1. 事务属性 1.1 事务传播属性 配套视频:[编程不良人]快速入门Spring,SpringBoot.SpringCloud学不好完全是因为Spring没有掌握!_哔哩哔哩_bilibili # ...
- Shiro授权--注解式开发
目录 一.授权角色,权限 UserMapper.xml 添加查询方法 UserMapper UserBiz UserBizImpl MyRealm 重新MyRealm 编写授权方法 配置文件 ap ...
- spring注解驱动开发-5 Spring AOP实现
Spring AOP实现 前言 AOP案例实现 1.编写目标类 2.编写切面类 3.编写配置类 4.编写测试类 end... 前言 AOP为Aspect Oriented Programming的缩写 ...
- spring注解驱动开发-6 Spring AOP实现原理
Spring AOP实现原理 前言 1.@EnableAspectJAutoProxy注解原理 2.AnnotationAwareAspectJAutoProxyCreator 分析 1.分析前工作, ...
- Spring自定义注解驱动开发使用及源码分析
目录 前言 注解驱动开发使用 需求 代码实现 测试效果 源码分析 BeanDefinitionRegistryPostProcessor接口 解析BeanDefinition 处理Bean上配置的注解 ...
最新文章
- matplotlib可视化基本散点图、在图像指定区域绘制方框(Draw Rectangle)
- 16款优秀的Vue UI组件库推荐
- netcore读取json文件_.Net Core如何读取Json配置文件
- [51单片机] EEPROM 24c02 [I2C代码封装-保存实现流水灯]
- 如何动态创建asp.net 用户控件
- java 中的scanner_java 中的Scanner
- mysql 删除 like_MySQL 定时删除数据
- OSPFv3中LSA详解(二)——Router LSA详解
- Xubantu安装google 输入法以及You‘re currently running Fcitx with GUI, but fcitx-configtool couldn‘t be found
- Facebook 应用开发认证和授权登录流程
- TSC2046EIPWR 德州TI 具有低压数字 I/O 和扩展 ESD 保护的 4 线触摸屏控制器
- FTP显示文件的修改时间与实际时间不一致
- rxjava背压_关于RxJava背压
- MySQL数据库存储过程讲解与实例
- 苹果手机密码设置在哪里_sim卡密码设置在哪里-sim卡密码设置介绍
- Redis 设计与实现——读书笔记
- 借鉴FCoin商业模式,写了一份白皮书去参赛
- Jenkins+Jmeter+Gitlab+Ant接口自动化持续集成构建(环境搭建配置)
- 北京工业计算机英语口语复试,北京工业大学复试回忆
- 读取Excel表格内容转为Sql when then语句