【问题标题】:Using custom annotations to generate biolerplate code使用自定义注解生成样板代码
【发布时间】:2011-11-24 09:39:27
【问题描述】:

各位, 我即将编写大量 J2EE/JAX-RS 代码,其中几乎所有公共方法都将执行以下操作:

  • 在请求标头中查找安全令牌。
  • 调用实用程序以确保令牌有效。
  • 如果无效,则返回错误响应(或注入空令牌)
  • 如果有效,请执行一些可能涉及自省令牌的操作
  • 在大多数情况下,在响应标头中返回更新的令牌。

我希望能够使用注释来抽象出这篇文章。我在方法上想象如下内容:

@RequireToken( returnRenewed=true )
@POST
@Path( "/some/path" )
public Result myMethod( ... )
{
    @InjectedToken
    final Token securityToken;
    ...
}

关于如何进行的任何指示?

【问题讨论】:

    标签: jakarta-ee annotations jax-rs


    【解决方案1】:

    您是否考虑过对这些操作使用弹簧安全性?您可以实现自己的身份验证过滤器。

    如果不是 Spring Security,也许是 AOP 和“之前”或“围绕建议”?

    【讨论】:

    • 嗨,密歇根,感谢您的回复。我完全属于 J2EE/EJB3 阵营,所以我没有考虑 Spring 安全性。如果 AOP 更通用,我很乐意检查一下。有什么好的参考资料可以指点我吗?
    • 您可以使用 Spring AOP 模块中的 AOP,非常易于使用。如果您使用的是 J2EE/EJB3,那将不是问题。 Spring 框架是非常模块化的,所以你只能使用它的一部分。更重要的是,弹簧技术总是文档是最好的信息来源。 AOP:static.springsource.org/spring/docs/3.1.0.M2/…围绕建议部分:static.springsource.org/spring/docs/3.1.0.M2/…
    • 如果你不想使用任何与 spring 相关的东西,你必须阅读 aspectj。
    • AspectJ 通常用于基于注释进行运行时代码检测吗?我很想知道,例如,EJB 框架或 JAX-RS 如何在运行时修改 servlet/EJB 代码以进行代码注入等?
    • 我不是这方面的专家,但我认为有些库使用反射,其他库使用 cglib2 对字节码进行操作。
    猜你喜欢
    • 2018-12-29
    • 2012-11-01
    • 2011-01-18
    • 2021-02-01
    • 2021-01-21
    • 2016-10-03
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多