AspectJ:切入点中的参数

2023-11-21

我使用 AspectJ 来建议所有具有所选类参数的公共方法。我尝试了以下方法:

pointcut permissionCheckMethods(Session sess) : 
    (execution(public * *(.., Session)) && args(*, sess));

这对于至少有 2 个参数的方法非常有效:

public void delete(Object item, Session currentSession);

但它不适用于以下方法:

public List listAll(Session currentSession);

我如何更改切入点以建议这两种方法的执行?换句话说:我期望“..”通配符代表“零个或多个参数”,但看起来它的意思是“一个或多个”......


哦,好吧……我用这个讨厌的把戏解决了这个问题。仍在等待有人给出“官方”切入点定义。

pointcut permissionCheckMethods(EhealthSession eheSess) : 
    (execution(public * *(.., EhealthSession)) && args(*, eheSess))
    && !within(it.___.security.PermissionsCheck);

pointcut permissionCheckMethods2(EhealthSession eheSess) : 
    (execution(public * *(EhealthSession)) && args(eheSess))
    && !within(it.___.security.PermissionsCheck)
    && !within(it.___.app.impl.EhealthApplicationImpl);

before(EhealthSession eheSess) throws AuthorizationException : permissionCheckMethods(eheSess)
{
    Signature sig = thisJoinPointStaticPart.getSignature(); 
    check(eheSess, sig);
}

before(EhealthSession eheSess) throws AuthorizationException : permissionCheckMethods2(eheSess)
{
    Signature sig = thisJoinPointStaticPart.getSignature(); 
    check(eheSess, sig);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AspectJ:切入点中的参数 的相关文章

  • 经典C++(带类的C)的调用/返回功能,哪些现代语言具有它?

    第 57 页C 的设计和演变 https rads stackoverflow com amzn click com 0201543303 Stroustrup 博士谈到了一个最初是 C with Classes 的一部分的功能 但它不是现
  • Spring AOP 日志拦截器和 JAXB 问题

    我正在尝试将日志记录方面实现到我的应用程序中 这是我第一次尝试 AOP 所以如果我遗漏了一些明显的东西 请告诉我 为了实现编织外部 jar 我正在尝试实现加载时间编织器 我确实在应用程序上下文中指定了加载时编织器 并在 context xm
  • Spring AOP(方面)未执行

    我使用 Spring 2 5 6 asm 1 5 3 aspectjrt aspectjweaver 1 6 1 cglib 2 1 3 在我的基于 Web 的 Spring 应用程序中 我有以下类 package uk co txttoo
  • 面向方面编程(AOP)有哪些缺点?

    面向方面编程有哪些可能的和关键的缺点 例如 新手的神秘调试 可读性影响 我认为最大的问题是没人知道如何定义切面的语义 or 如何非程序地声明连接点 如果您无法独立于要嵌入的上下文来定义某个方面的功能 或者无法以不损害其嵌入的上下文的方式定义
  • Java 包结构中的模块与层

    我曾经把所有东西都放在这样的包中 com company app module1 com company app module2 但它使得基于包的 AOP 切入点变得困难 并导致需要 IDE 才能理解的巨大包 所以现在我意识到我需要一个更深
  • Ninject 通过城堡动态代理拦截具有非空构造函数的代理类

    我当前的大部分实现都基于此处提供的信息 Ninject 拦截任何具有特定属性的方法吗 https stackoverflow com questions 6386461 ninject intercept any method with c
  • AOP 使用 around 来避免执行方法

    我在代码中使用 Spring AOP 来拦截某个方法的执行 我正在尝试做的一个简化示例如下 public void someMethod does something Around execution someMethod public v
  • @Aspect 方面的 Spring 自动装配 bean 为 null

    我有以下弹簧配置
  • 带有 Grails 的 AOP

    我想在我的 Grails 项目中创建自定义日志记录注释 My code class MyService AuditLog def method1 println method1 called method2 AuditLog def met
  • Spring AOP 是否进行编译时编织或加载时编织?

    我开始在一个项目中使用 Spring AOP 但我对编织有点困惑 我知道 Spring AOP 依赖于 AspectJweaver jar 但正如文档所说 这不是为了编织 而只是它使用了这个 jar 中的一些类 但我的问题是 如果不使用As
  • 有人有 Postsharp 制作经验吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何模拟一个方面

    我目前正在使用aspectj 开发一些监控工具 因为这个工具应该是技术独立的 尽可能 所以我没有使用 Spring 进行注入 但我希望我的方面能够经过单元测试 方面示例 Aspect public class ClassLoadAspect
  • 在 Grails 中使用 AOP 不适用于服务

    我使用 Grails 2 2 3 并在 grails app conf spring resources groovy 中键入以下代码 beans xmlns aop http www springframework org schema
  • 使用AOP技术拦截ADO.Net

    我有相当大的代码库 使用各种不同的 ADO 技术 即一些 EF 在某些情况下直接使用 ADO Net 我想知道是否有任何方法可以全局拦截任何 ADO Net 调用 以便我可以开始审核信息 例如执行的确切 SQL 语句 花费的时间 返回的结果
  • 使用 iajc 构建时在运行时出现 NoSuchMethodErrorspectOf()

    我们使用aspectJ 来获取现有应用程序的一些指标 在 Eclipse 中使用 AJDT 进行构建和编织时 一切都运行良好 但在集成环境中 我们使用 ant 脚本来构建和部署应用程序 问题发生在 ExceptionHandler 上 我这
  • PostSharp 如何在运行时知道某个方面是否应用于方法?

    我正在实现 PostSharp 方面库 但无法找到以下问题的解决方案 假设我们有一个方面将应用于某些方法 而不会应用于其他方法 我需要某种可以在运行时使用的机制来了解某个方面是否应用于方法 具体来说 在运行时确定某些方面是否应用于由 a 给
  • 在尊重访问控制的同时为 REST API 序列化 SQLAlchemy 模型?

    目前 我们以及大多数 Web 框架的序列化工作方式是通过某种类型的方法调用将模型转储为某种类型的格式 在我们的例子中 我们有一个to dict 每个模型上构造并返回键值字典的方法 其中键是字段名称 值是实例变量 在我们的整个代码中 我们都有
  • 如何使用 PostSharp 拦截基类上的方法调用?

    我想提供一个实现System Object ToString使用 PostSharp 到各种类 我创建了一个继承自的方面MethodInterceptionAspect但是OnInvoke调用时不会调用方法EchoDto ToString发
  • 如何根据条件退出 PostSharp 方面的 OnEntry 方法中的方法

    我希望方面根据如下条件退出方法调用 AttributeUsage AttributeTargets Method public class IgnoreIfInactiveAttribute OnMethodBoundaryAspect p
  • 如何使用spring AOP拦截所有带有@Repository注解的存储库类

    我试图拦截我的所有返回列表BaseRepostitary文件 这样我就可以找到列表中必须使用此解密的名称decrypt方法 以下是我的方面类 Aspect Service public class DecryptionAspect Afte

随机推荐

  • api.jar + impl.jar + bundle.jar 的用途是什么?

    我看到许多Java包都有api impl和bundle jar name api jar name impl jar name bundle jar 有人能解释一下这些是什么意思吗 应用程序需要全部三个吗 这个想法是你可以分离应用程序的依赖
  • 具有变量和多个值的 jQuery .css() 函数

    奇怪的小混乱 我正在使用 jQuery css 使用变量更改文本大小的方法 长话短说 不 我不能使用媒体查询 我需要添加em到它 我不确定语法是什么 因为 CSS 更改有多个值 为了显示 这非常有效 它添加了em到计算值victore h1
  • 使用 CSS 将背景图像设置在列表中的背景颜色之上

    这是代码 ul li class test a href h2 Blah h2 p Blah Blah Blah p a li ul 基本上 我的列表已经有一些样式 例如 我为其设置了背景颜色 现在在 测试 类中 我还设置了背景图像 我的问
  • 在引导程序中使列具有相同的高度

    我在一行中有三列 我希望所有三列具有相同的高度 填充整个空白区域 目前 它看起来像这样 如您所见 左栏是正确的高度 中间和右边没有的地方 它的脚手架看起来像这样 div class container div class row div c
  • 强制 iOS Facebook 应用程序在浏览器中而不是 WebView 中打开提要链接

    在投票 标记之前 请注意已经有类似的问题 但它们都不能使用纯 JavaScript 每当在 iOS 设备上单击 Facebook Feed 上的链接 仅通过 facebook 应用程序 时 它将在 WebView 中打开 而不是在新的浏览器
  • python:我什么时候可以打开生成器的包装? [复制]

    这个问题在这里已经有答案了 它在幕后是如何工作的 我不明白以下错误的原因 gt gt gt def f yield 1 2 yield 3 4 gt gt gt f File
  • 将 SQL CE 4 部署到 IIS 7 - 需要特殊权限吗?

    我有一个使用新 SQL CE 4 CTP 的 ASP NET 4 站点 该站点在本地 Win7 上的 IIS 7 5 运行良好 在 Server 2003 IIS 6 中运行良好 部署到 Server 2008 上的 IIS 7 时失败 我
  • 什么是 |和 << 是什么意思?

    抱歉 如果这是一个常见问题 但我不知道它叫什么 所以我在搜索时遇到了困难 这是如何运作的 view autoresizingMask UIViewAutoresizingFlexibleWidth UIViewAutoresizingFle
  • asp.net web api 2 CORS和身份验证授权配置

    我创建了一个具有个人帐户安全性的 asp net web api 2 服务 我尝试按照以下示例从 AngularJs 中调用它 http www codeproject com Articles 742532 Using Web API I
  • 关于C#中不明确调用的问题

    我有一个问题 虽然不是真正的问题 但让我有点好奇 我有一个类 其中有两种方法 一种是静态方法 另一种是实例方法 这些方法具有相同的名称 public class BlockHeader public static BlockHeader P
  • 使用docker进行谷歌云数据流依赖

    我对使用 Google Cloud Dataflow 并行处理视频感兴趣 我的工作同时使用 OpenCV 和张量流 是否可以只在 docker 实例内运行工作程序 而不是按照所述从源安装所有依赖项 https cloud google co
  • 在 PHP 中将新的键/值对添加到 JSON 中

    我的 MySQL 数据库有一个结果 我用 PHP 进行了 json 编码 结果看起来像 id 8488 name Tenby area Area1 id 8489 name Harbour area Area1 id 8490 name M
  • 如何将库添加到 Xamarin 参考列表

    是否有地方可以放置库 dll 以便它们显示在要选择的项目的引用列表中 我知道我可以从我的个人库中手动添加它们 但是我希望能够将它们添加到可用列表中 因此我所需要做的就是选择它们 我认为会有某种方式来表明它们适用于哪个平台 在 编辑引用 下
  • CefSharp - 获取 HTML 元素的值

    如何使用 CefSharp 获取 HTML 元素的值 我知道如何使用这个默认的 WebBrowser 控件 Dim Elem As HtmlElement WebBrowser1 Document GetElementByID id 但我没
  • 使用 gradle 构建库项目时 BuildConfig.DEBUG 始终为 false

    当我在调试模式下运行应用程序时 BuildConfig DEBUG 不起作用 逻辑上设置为 false 我使用 Gradle 来构建 我有一个图书馆项目 我在其中进行此检查 BuildConfig java 在构建调试文件夹中看起来像这样
  • App Store 下载 dSYM 中缺少 UUID dSYM(更多目标应用程序)

    我在使用 iOS 应用程序 XCode 10 3 时遇到以下问题 Crashlytics 说我缺少 dSYM 并提供了缺少的 dSYM UUID 我缺少必需的和可选的 UUID 该应用程序是BitCode应用程序 dSYM是从AppStor
  • Dygraphs 中的散点图?

    如何使用 dygraphs 绘制散点图 数据如下所示 X 轴可能有 5 20 个值 类别 Y 值可能是 x 轴上每个值 1 10 个值 这是我需要的一个例子 这在 Dygraphs 中可能吗 谢谢 迈克尔 您可以设置 strokeWidth
  • 如何在React js中读取xml文件(data.xml)?

    我尝试读取 xml 文件并解析它react xml parser图书馆 var XMLParser require react xml parser var xml new XMLParser parseFromString xml str
  • 2 个列表的交集和并集

    我正在开始学习 prolog 我使用 SWI prolog 我做了一个简单的练习 其中我有 2 个列表 我想计算它们的交集和并集 这是我的代码 效果很好 但我问自己是否有更好的方法 因为我不喜欢使用剪切操作员 intersectionTR
  • AspectJ:切入点中的参数

    我使用 AspectJ 来建议所有具有所选类参数的公共方法 我尝试了以下方法 pointcut permissionCheckMethods Session sess execution public Session args sess 这