问题标签 [cross-cutting-concerns]

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.

0 投票
2 回答
1737 浏览

c# - 构造函数注入(DI)与静态工厂的横切关注?

在大多数任意应用程序中,有许多横切关注点需要在所有可用层中解决,例如日志记录、消息总线、配置。我注意到,在某些类中,如果使用 IoC 注入模块,它们往往会完全炸毁构造函数。

对于构造函数过度注入的常见情况,我倾向于将关注点重构为紧密相关的构建块,因此我在类中获得更少的依赖关系。然而,这对于横切概念是不可能的。

在日志框架中,静态工厂/服务似乎非常流行,例如

我的问题是:对于各种横切的东西,这种方法是一种好方法吗?如果代码最终看起来像这样,有什么缺点:

0 投票
2 回答
79 浏览

c# - 将非 MVC 相关属性应用于 MVC 操作

我们的应用程序具有 a 的概念PermissionAttribute。该属性在我们应用程序的基础层中定义,我们的命令和查询都使用该属性进行修饰。由于这个属性是在基础层中定义的,我们不能(也不想)让它继承FilterAttribute或实现System.Web.Mvc.IActionFilter它。

我们仍然希望将此属性应用于控制器操作,如下所示:

基于此属性,应应用适当的安全检查。我一直在浏览 MVC 代码库以找到合适的挂钩来自定义 MVC 行为,以允许基于此自定义属性添加这些安全检查。我虽然关于创建一个从其方法ControllerActionInvoker返回一个自定义的自定义,该自定义将返回基于 的存在而创建的自定义,但感觉工作量很大,我不确定这是正确的行走路径.ReflectedControllerDescriptorGetControllerDescriptorFilterAttributePermissionAttribute

什么是定制 MVC 管道以便我们可以处理这个非 MVC 相关属性的有效和愉快的方式?

0 投票
2 回答
1518 浏览

c# - 我们如何为异步 .net 方法创建调用上下文?

在同步环境中,很容易创建一个作用域上下文,它允许您将带外上下文附加到当前线程。这方面的示例是当前的 TransactionScope 或线程静态日志记录上下文。

使用IDisposable 和线程静态字段的组合很容易实现上下文。

显然,这在使用异步方法时会分崩离析,因为上下文是基于线程静态字段的。所以,这失败了:

当然,我们还希望将上下文传递给调用链中的异步方法,所以这应该也可以:

有谁知道如何实施?在使用 async/await 模式时丢失带外上下文会使某些代码片段非常难看。

考虑一下您希望使用基于请求的上下文进行日志记录的异步 WebAPI 调用。您希望调用堆栈深处的记录器知道请求 ID,而无需使用参数将请求 ID 一直传递到调用堆栈。

谢谢你的帮助!

0 投票
1 回答
79 浏览

java - 入侵检测(XSS 攻击)是一个交叉问题吗?我们可以将它与 AOP 解耦吗?

我目前正在努力保护应用程序免受XSS 攻击。因此,我特别针对Every Request进行检查。这也可以在拦截器级别进行检查。

但我想将它与 AOP 之类的东西解耦?

您的经验中的任何输入都是可观的。

谢谢。

0 投票
1 回答
190 浏览

c# - 带有 AOP 的数据库控制器 API Try Catch

我正在为数据库操作创建一个 api,我必须用 try catch 包装 api 中的每个函数调用。我基本上是想获得与 python 中的装饰器相同的功能。

我读了一堆文章,这似乎是最好的例子:http: //ayende.com/blog/3474/logging-the-aop-way。我遇到的一个问题是,在使用需要包装的函数接口解析容器后,您必须调用已解析的容器来调用其中一个函数。

我希望我的控制器的用户能够只调用实现上述接口的我的类,并且对我在内部所做的事情一无所知,就 try catch 业务而言。

这可能吗?如果解决方案很简单,我深表歉意,我对 C# 没有太多经验。谢谢。

0 投票
2 回答
513 浏览

c# - 简单的喷油器,功能不被拦截?

我试图让一个横切关注点拦截我在控制器上的调用,但由于某种原因,它们没有被拦截。

我基本上是想让这里的例子起作用: http ://simpleinjector.readthedocs.org/en/latest/InterceptionExtensions.html

他们在这里的拦截部分也有一些其他信息:http: //simpleinjector.readthedocs.org/en/latest/advanced.html

我有一种感觉,这是因为我没有正确设置容器。"Intercepted!!!"有人可以告诉我在控制器上的调用完成后我需要如何更改我的 main吗?另外,有人可以告诉我容器的设置是否错误,如果是,请解释我的错误。

编码:

0 投票
0 回答
24 浏览

java - 在 Java 中聚合和呈现与用户相关的消息给最终用户

我正在使用Apache CXF开发一个Rest API,目前我正在寻找一种方法来聚合与客户端相关的消息,以便在必要时将它们发送回客户端。

例如,假设客户端通过POST请求调用我的资源之一,以便将数据添加到集合中。如果客户端发送不正确的数据,则将发送HTTP 400响应。我想要的是在响应有效负载中发送有关数据无效原因的有用消息。这些消息可能来自我的应用程序中的不同类。我目前所做的是我开发了一个 MessageQueue 类(如下所示),它负责管理这个横切关注点。

这是一个好方法吗?是否有任何框架可以做类似的事情,或者有更好的方法吗?

谢谢

消息队列.java

0 投票
0 回答
39 浏览

c# - 如何在没有依赖的情况下使用 Ninject 与装饰器绑定?

我了解如何按照此处的说明配置装饰。但我看到一个问题。就我而言,我想避免对存储库的依赖。

详细地说,我有UIBL(业务层)、DL(数据层)。UI 和 DL 参考 BL。上面的代码位于 UI 的组合根目录中。IRepository位于 BL 中,Repository属于Data 层。我不想在 UI 中引用 DL。那就是我不想让 DL 成为 UI 的依赖项。所以我们在这种情况下使用的代码如下使用约定优于配置。

所以问题很简单,我怎样才能使用约定优于配置的条件绑定

0 投票
2 回答
334 浏览

asp.net-mvc-4 - 自定义 Unity 拦截行为或企业库块,哪个更适合 AOP?

试图决定为我的 MVC 应用程序采用哪条路径并希望遵循 AOP 方法。谁能解释 Unity Custom 拦截行为和使用 Enterprise Library 6 的优缺点。

现实世界实施的经验和教训将非常有帮助,谢谢。

0 投票
1 回答
919 浏览

scala - 如何以 Scala 方式处理横切关注点

因为我刚刚在我的代码中实现了 Log4j,所以我正在网上阅读有关横切关注点的信息。有些人说使用 AspectJ 没问题,而另一些人则指出它破坏了函数式编程。那个 mixins 是 Scala 的横切关注点的解决方案。

然而,当我认为我会将一个特征扩展到一个本身不相关的对象/类时,我会感到畏缩。

例如new Database with Logger

这里Logger与 无关Database,但它如何混合以提供日志记录。我更喜欢用 Scala 的方式来做,所以我想知道这就是人们所说的 mixins 的意思。

有人可以向我展示一个如何在 Scala 中进行此操作的快速示例吗?