我在想一个一般的请求映射问题。在不选择任何特定MVC框架的情况下,将基于注释的请求映射与简单的参数检查器映射进行比较,哪一个更好?
假设我想创建一个web服务,它应该处理例如“添加”和“删除”操作。
使用注释,它看起来像这样:
@Path("/add")
public void add(String addable) {}
@Path("/remove")
public void remove(String deletable) {}
使用参数,它将如下所示:
@Path("/operation")
public void doOperation(Operation op) {
String type = op.getType();
if ("add".equals(type)) {
add(op);
} else if ("remove".equals(type)) {
remove(op);
}
}
在第二个示例中,假设Operation对象是从JSON对象构建的。我们的想法是,我们只有一个通用的操作,它有一个类型参数,我们总是调用相同的请求(在本例中为/Operation),实际的请求类型在JSON对象内部。
我知道第一个看起来更好,但是这是一个更好的解决方案还有其他原因吗?它有更好的性能还是别的什么?
你的问题可以简化为这种情况:
class A {
methodA()
methodB()
}
class B {
methodC(Operation) {
check what operation there is and invoke the needed method.
}
}
如果不想直接访问其他方法,或者想在调用methodA()或methodB()之前做额外的工作,可以使用类B。例如,验证用户身份。
在MVC框架中,您已经有了其他工具来实现这一点。
我有一个可用于注释的方面: 连接点: 我可以在具有
假设我有这样一种方法: 是否有一个切入点表达式可以选择所有参数带有@CustomAnnotation注释的方法?如果是这样的话,有没有一种方法可以让我访问“value”参数?
所以目前,这是我所做的(不起作用): 这是与建议匹配的代码: 以及由junit测试生成的跟踪:
如何在我的建议中获得注释参数的值。我有如下场景: 我希望为所有具有@Custom注释的方法定义切入点,这里没有什么花哨的。问题是我想在建议中获取用@Param标记的参数和注释本身的值。这种带注释的参数的数量不是固定的,可以有任何数量,也可以根本没有。 到目前为止,我已经使用了反射,我能够获取带有注释的参数,但不能获取注释的值。
我创建了自定义注释。我将用它来注释方法参数。 我在这里找到了一些示例代码,展示了如何创建针对自定义注释的切入点。 所以现在,我创建了一个带切入点的方面。但是我不知道如何获得用注释的参数值。
问题内容: 如果满足以下条件,则需要创建一个与方法匹配的切入点的方面: 它用MyAnnotationForMethod注释 它的参数之一(可以有多个)用@MyAnnotationForParam注释(但也可以具有其他注释)。 方面类看起来像这样 注释方法 随着日食->警告:在poincut: 使用http://download.eclipse.org/tools/ajdt/35/update中的最