问题标签 [aspects]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在 Spring 中使用注释应用方面?
更新:我发现 Spring 2.x 基于注释的控制器对于 AOP 安全性来说是可怕的,因为由于参数和返回值的自由度增加,您无法对方法原型做出假设。在 2.x 之前,您可以拦截handleRequest并知道第一个参数是HttpServletRequest并且返回值是ModelAndView。该标准允许您为每个控制器编写简单的建议。现在映射到请求的方法可以接受任何内容并返回字符串、ModelAndViews 等。
原始帖子:我有一组现有的方面,它们实现了在 Spring 中运行的 AOPAlliance 的 MethodInterceptor。它们通过拦截 . 处理请求。控制器中的方法,并允许执行或转发到登录页面。
使用 Spring 中新的基于注解的控制器,不再需要实现“handleRequest”方法;控制器的方法可以任意命名。这打破了我现有的安全模型。那么,我如何从中得到:
...能够重用我现有的方面并使用注释将它们应用于整个控制器或控制器方法?
java - 面向方面编程的未来
我是AOP领域的新手。我第一次编写应用 AOP 概念的代码时,我很高兴了解方面如何消除应用程序中的横切模式。应用 AOP 解决诸如安全、日志记录、事务、审计等横切模式的想法让我不知所措。
然而,当我第一次向我工作的客户提议使用 AOP 时,我被告知他们不支持它。有人告诉我,AOP 意味着更多的维护!如果您的代码更改,您的切入点必须更改。因此,每当您更改应用它们的代码时,您可能必须分析、更改和测试您的方面?
对此你有什么想说的?为什么主流公司还没有对 AOP 的广泛使用开放?AOP 世界将走向何方?
c# - AspectF(一个 Fluent Aspect Framework)是不是一个类似 AOP 的设计,可以不用担心地使用?
Omar Al Zabir正在寻找“一种更简单的 AOP 风格编码方法”。
他创建了一个名为AspectF的框架,这是“一种将 Aspect 添加到代码中的流畅且简单的方法”。
这不是真正的 AOP,因为它不执行任何编译时或运行时编织,但它是否实现与 AOP 相同的目标?
这是 AspectF 用法的示例:
以下是作者的一些帖子,进一步阐明了 AspectF 的目标:
- AspectF 流畅的方式将 Aspects 放入代码中以实现关注点分离(博客)
- AspectF(谷歌代码)
- AspectF Fluent 方式为更清晰的可维护代码添加方面(CodeProject)
根据作者的说法,我认为 AspectF 的设计与其说是 AOP 的替代品,不如说是一种实现“关注点分离并保持代码整洁”的方式。
一些想法/问题:
- 随着项目的发展,对使用这种编码风格有什么想法吗?
- 它是可扩展的架构吗?
性能问题?- 可维护性与真正的 AOP 解决方案相比如何?
aspectj - AspectJ 中的多态性
我正在尝试确定在 AspectJ 中调度类型的更好方法。假设我正在对具有三种节点的树执行计算。然后我可以编写一个简单的 Java 方法:
或者
或者我可以将一个方法注入每个节点类型:
哪种方法更可取,为什么?
security - 如何在不修改页面源的情况下全局修改从 IIS 发送的页面输出?
我的几个网站最近被“黑”了。有人能够在网站上每个页面的底部添加一行 JavaScript。
服务器是 Windows Server 2003,安装并运行 Cold Fusion 8 和 MySQL 5.x。
查看每个页面上的代码显示没有任何页面被修改。JavaScript 不在代码文件本身中。这使我相信这是一个 IIS 问题,但我不确定并且找不到任何能够在 IIS 中执行此操作的东西。
仅当用户来自 Google 时,添加的 JavaScript 才会将用户重定向到另一个页面,或者至少看起来以这种方式工作。
任何有关某人如何能够完成此操作以及将其删除的帮助将不胜感激。
感谢@Jeffrey Hantin,另一种表达问题的方式
如何在不修改单个页面的情况下系统地修改 IIS 的输出?
编辑:更多的测试表明只有 .cfm 页面添加了额外的 javascript。添加了一个新的 .cfm 并且 js 在那里,但 .html 没有它。
Edit2:毕竟是一个冷融合问题。不知何故,在网站上创建了页面 OnRequestEnd.cfm 并添加了该 js。
.net - 任何 PostSharp 替代方案?
我不得不放弃使用 PostSharp,因为它不适用于混淆/合并的程序集。至少,我看不到任何让它工作的方法(它在应用程序启动时崩溃,当程序集被混淆时)
我需要在我的应用程序中拦截一些方法(调用特殊代码而不是原始方法 - OnMethodInvocationAspect)有
什么建议吗?
java - 在 Eclipse 中调试时避免切面
我正在从事一个大型项目,其中定义了业务类的许多方面。我想避免在调试业务类中的代码时输入方面的代码。有什么解决办法吗?我们使用编译时编织和 maven 进行编译。
java - 你如何在 Spring 2.5.x 中使用原型注解?
当迁移到 Spring 2.5.x 时,我发现它添加了更多的原型注解(在2.0的@Repository之上): @Component、@ Service和@Controller。你如何使用它们?您是依赖隐式 Spring 支持还是定义自定义构造型特定功能/方面/特性?还是主要用于标记 bean(编译时间、概念等)?
java - Eclipse for Roo 项目中的自动完成
我有一个 Roo 项目,我在其中创建了几个实体,当我在 Eclipse 中加载项目时,它加载得很好,但是如果我创建一个实例MyEntity entity
然后编写entity.
,我没有得到我的任何属性(即getMyField)在自动完成列表中。如果我写entity.getMyField()
它编译得很好,那是由方面来处理的。如何为方面生成的功能启用自动完成功能?
干杯
尼克
c# - PostSharp 关于我没有来源的程序集
在他们网站上的示例中,PostSharp 有一个在主系统程序集中拦截调用的演示。我已经尝试了几次在我没有源代码的程序集中设置和复制所说的拦截调用,但没有成功。
我的方法是简单地放置针对我想要检测的命名空间和方法的程序集级属性。这对我从来没有用过。
就像是:
[程序集:Trace("MyCategory", AttributeTargetTypes = "My.BusinessLayer.*")]
我在这里错过了什么吗?如果我没有为它提取源代码,我是否可以不在程序集上对我的检测方面进行运行时注入?我以为我可以进行运行时注入...
谢谢。