【问题标题】:Cross cutting concerns with VertxVertx 横切关注点
【发布时间】:2020-07-26 22:52:45
【问题描述】:

我需要通过使用 vertx 构建的微服务来处理横切关注点。回到某个时候,我们使用了 spring AOP,但技术堆栈已更改为 Vertx,并找到了一种方法,如果它甚至可能的话。希望就这种情况下的所有可能选项提出建议。

【问题讨论】:

    标签: aop vert.x


    【解决方案1】:

    AOP 只是另一种生成代理类的方法。在 Vert.x 中,您通常会使用 Handlers 和 Context 来实现相同的目标。

    假设您希望在端点周围进行日志记录。你可以这样做:

    Router filterRouter = Router.router(vertx);
    
    filterRouter.get().handler((ctx)->{
        System.out.println("Before");
        ctx.next();
        System.out.println("After");
    });
    filterRouter.mountSubRouter("/", router);
    

    如果您不想继续使用过滤器链,您就不会在处理程序中调用ctx.next()

    【讨论】:

    • 但是我需要处理那些横切,而不是在端点级别,而是在端点后面的代码中更深层次。假设我正在调用委托/适配器或数据库调用作为 API 调用的一部分,配置/选择的方法进入和退出,处理程序和上下文是否解决了目的?
    • 简短回答是“是”。这只是一个常见的例子。处理程序在整个 Vert.x 中都使用,这就是处理(不是双关语)横切关注点的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 2011-08-01
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多