webMVc 和持久层调用中,都会有拦截器功能,一个对象,最终要调用的某个方法,但之前要会被很多拦截器拦截。有没有专门做这种基于对象的 aop 拦截的工具类呢?
那种把扫描一个包,一个类,为每个方法都注入 aop 切面的 aop,这个 aop 功能太高级了,操作比较复杂。
我需要的是专门用于拦截对象的 aop 工具,类似 Web 拦截器那种,例如 Spring MVC 里的拦截器,的目就是拦截 HttPServletRequest 对象。根据开发者定制的流程配置决定是否放行,进入下一个 web 组件(下一个拦截器或最终的请求处理方法)
我想为我编写的小框架的某个流程处理,为某个类型的对象,增加拦截器功能。调用拦截器处理方法,在方法代码内根据开发者编码配置决定是否放行,或阻止下一步前进。有专门做这个的 aop 拦截组件么,比较好用的是哪个?
1
cookii 2020-06-30 16:07:01 +08:00
我感觉你想要动态代理?甚至静态代理就行了?
|
2
tctc4869 OP @imzhoukunqiang 想要的是类似 Spring mvc 的拦截功能,就拦截对象就行,但是拦截对象,我自己去定义,但是 Spring MVC 那个方式我可以模仿一个出来,但是感觉不太好用,因为用的是拦截三个方法控制拦截流程,如果能在一个方法里完成拦截流程(调用 Invoke 进入下一个拦截器或拦截结束)控制就好了。
|
3
tctc4869 OP @imzhoukunqiang 想到 asp.net,我才发现我的拦截器设计策略应该是有问题的,我觉得应该像 asp.net 的过滤器一样,把拦截器分成几个类,而不是像 Spring MVC 一样,把异常,前置拦截,后置等,都堆在一个类里
|
4
Kaiv2 2020-06-30 19:29:22 +08:00 via Android
看下 spring 的 aop 吧,符合你的需求
|
5
hand515 2020-06-30 19:43:15 +08:00 via Android
看得我好费劲。。。。
spring aop aspectj 动态代理 以上三个关键字搜,能找到一堆满足你的需求的文章 |
6
xuanbg 2020-07-01 04:15:43 +08:00
看了半天也没明白楼主在说啥。。。拦截对象的意思是一旦实例化某个特定类型就先拦截,然后在拦截器里面处理完了再实例化?那不如这个类型的构造函数里面处理这个逻辑好了。还是类型已经实例化,但在调用对象方法时候进行拦截?这种策略模式就解决了,要什么 aop 。
|