首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Osgi批注处理

Osgi批注处理
EN

Stack Overflow用户
提问于 2020-09-29 00:45:45
回答 1查看 46关注 0票数 0

我有一个使用@Component注解声明的组件,其中有一组实现与另一个api通信的方法,在我的产品中,有一些操作是匿名id用户所禁止的。我想创建一个注解,例如@ProhibitedForAnonym,每次调用该方法时,它将使用方法参数中的ID检查匿名客户的ID,如果ID匹配,则抛出错误。但我不明白如何在OSGI中进行批注处理,也许是某种拦截器?

EN

回答 1

Stack Overflow用户

发布于 2020-09-29 15:19:57

OSGi中没有通用的拦截框架。但是,您可以通过以下方式进行拦截:

  1. 不需要。就我个人而言,我觉得自从我们使用lambdas作为基于代码的解决方案以来,它已经赢得了一个“神奇”的注解检查。它的字符数大致相同,但基于lambda的调用允许我单步执行,为安全检查提供上下文,不会受到THIS问题的困扰,是可测试的,并且不需要有大量byte code weaving support in OSGi错误的复杂框架。您需要尽早注册一个编织器,然后编织任何具有这些注释的类。您可以在https://github.com/aQute-os/biz.aQute.osgi.util/tree/master/biz.aQute.trace中查看如何使用字节码编织器的示例。确保你的织布工先到那里。如果您使用bndtools,您可以将其添加到-runpath中,以便在任何人之前运行。或者使用开始级别。
  2. 使用代理。您可以使用service Hooks‘隐藏’和原始服务,然后注册一个代理。然后,您可以在代理中执行注释检查。这还要求此代码首先运行,并且不能更新。我想spec有一个

的例子

您可能想要阅读:https://www.aqute.biz/appnotes/interceptors.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64106327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档