Java 有哪些基于对象的 Aop 拦截工具?

2020-06-30 14:54:27 +08:00
 tctc4869

webMVc 和持久层调用中,都会有拦截器功能,一个对象,最终要调用的某个方法,但之前要会被很多拦截器拦截。有没有专门做这种基于对象的 aop 拦截的工具类呢?

那种把扫描一个包,一个类,为每个方法都注入 aop 切面的 aop,这个 aop 功能太高级了,操作比较复杂。

我需要的是专门用于拦截对象的 aop 工具,类似 Web 拦截器那种,例如 Spring MVC 里的拦截器,的目就是拦截 HttPServletRequest 对象。根据开发者定制的流程配置决定是否放行,进入下一个 web 组件(下一个拦截器或最终的请求处理方法)

我想为我编写的小框架的某个流程处理,为某个类型的对象,增加拦截器功能。调用拦截器处理方法,在方法代码内根据开发者编码配置决定是否放行,或阻止下一步前进。有专门做这个的 aop 拦截组件么,比较好用的是哪个?

1785 次点击
所在节点    Java
6 条回复
imzhoukunqiang
2020-06-30 16:07:01 +08:00
我感觉你想要动态代理?甚至静态代理就行了?
tctc4869
2020-06-30 17:45:00 +08:00
@imzhoukunqiang 想要的是类似 Spring mvc 的拦截功能,就拦截对象就行,但是拦截对象,我自己去定义,但是 Spring MVC 那个方式我可以模仿一个出来,但是感觉不太好用,因为用的是拦截三个方法控制拦截流程,如果能在一个方法里完成拦截流程(调用 Invoke 进入下一个拦截器或拦截结束)控制就好了。
tctc4869
2020-06-30 19:14:49 +08:00
@imzhoukunqiang 想到 asp.net,我才发现我的拦截器设计策略应该是有问题的,我觉得应该像 asp.net 的过滤器一样,把拦截器分成几个类,而不是像 Spring MVC 一样,把异常,前置拦截,后置等,都堆在一个类里
Kaiv2
2020-06-30 19:29:22 +08:00
看下 spring 的 aop 吧,符合你的需求
hand515
2020-06-30 19:43:15 +08:00
看得我好费劲。。。。
spring aop
aspectj
动态代理
以上三个关键字搜,能找到一堆满足你的需求的文章
xuanbg
2020-07-01 04:15:43 +08:00
看了半天也没明白楼主在说啥。。。拦截对象的意思是一旦实例化某个特定类型就先拦截,然后在拦截器里面处理完了再实例化?那不如这个类型的构造函数里面处理这个逻辑好了。还是类型已经实例化,但在调用对象方法时候进行拦截?这种策略模式就解决了,要什么 aop 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/685939

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX