我正在尝试获得一些执行建议。当我使用不带参数的注释时,它会执行,但当注释包含参数时,它不会执行。
@Aspect
class a{
@Pointcut("execution(@com.annotations.AnnotationName* *(..))")
void someMethod() {}
@Around("someMethod()")
public Object aroundSomeMethod(ProceedingJoinPoint pjp) throws Throwable
{
// some code
}
}
注释:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AnnotationName
{
public String someString();
public boolean someBoolean();
}
注释的使用:
@AnnotationName(
someString= "string",
someBoolean = false
)
private void mycode()
{//code }
以下方面代码将建议使用@AnNotationName
注释的目标方法
@Component
@Aspect
public class SomeMethodAspect {
@Pointcut("@annotation(annotationName) && within(so.qn69016852..*)")
private void someMethod(AnnotationName annotationName) {}
@Around("someMethod(annotationName)")
public Object aroundSomeMethod(ProceedingJoinPoint pjp,AnnotationName annotationName) throws Throwable
{
System.out.println(annotationName.someString());
System.out.println(annotationName.someBoolean());
return pjp.proceed();
}
}
几次修正/观察。
方面也应该是spring bean。这可以通过使用组件注释方面来实现
请记住限制范围:https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#writing-很好的切入点
您也可以通过@kriegaex的这个答案来理解为什么
@注释
具有全局范围。
更新:
OP共享的代码也可以用于修改输入错误(切入点表达式中的注释名和注释之间的空格)。早些时候分享的观察结果在这里也适用。
@Component
@Aspect
public class SomeMethodAspect {
@Pointcut("execution(@so.qn69016852.anno.AnnotationName * so.qn69016852..*.*(..))")
private void someMethod() {}
@Around("someMethod() && @annotation(annotationName)")
public Object aroundSomeMethod(ProceedingJoinPoint pjp,AnnotationName annotationName) throws Throwable
{
System.out.println(annotationName.someBoolean());
System.out.println(annotationName.someString());
return pjp.proceed();
}
}
问题内容: 以下代码运行良好: playgound_1 但是如果我改变 至 游乐场_2 我的代码无法执行。 我的直觉是在完成执行之前,某种方式会返回,但是似乎添加暂停应该没有任何效果。我对这个简单的例子完全迷失了,这是怎么回事? 问题答案: 当函数结束时,它的程序结束。它不等待其他goroutine完成。 引用Go语言规范:程序执行: 程序执行首先初始化主程序包,然后调用函数。当该函数调用返回时,
问题内容: 我有这个下面的代码。 编辑: 这是被称为回调函数的函数: 现在,如果我想将变量作为参数传递给回调函数,是否有办法做到这一点而不必在调用中将其添加为另一个参数?我试图让该函数对其他用法开放,所以我不想传递任何额外的参数;但是如果它可以以某种方式包含在回调中,那就太好了。 问题答案: 将回调更改为匿名函数: 这使您可以将参数传递给内部函数。 编辑:允许ajax响应:
我创建了自定义自动完成,在这里我想使用手动输入输入,并从数据库中提供选项。所以我创建了javascript代码,它从DB中获取数据并将它们放入datalist。对于第一次搜索,所有这些都很好,但我实现了分隔符,这样我就可以在输入字段中添加多个值(我希望有一个电子邮件列表)。当我的代码再次调用ajax进行下一次自动完成时,我在控制台中看到datalist中的数据已刷新,但浏览器不再显示任何数据。 代
有没有人知道一个vba代码,如果a列中的任何单元格包含单词“total”,就可以删除整行?例如,A38包含“total”,则删除整行。下个月,单元格A44包含单词“total”,删除整行。诸如此类....谢谢!
问题内容: 例如,需要使用 字符串找出只读取字符串中 数字 的方法, 即 我的尝试 问题答案: 试试这个: 由于返回的是文本数组,因此您应该通过来访问第一个元素。
目前 我在DynamoDB中有一个表,其中有一个属性-主键-包含唯一的值。 问题 我希望对#B#C#(1)精确匹配和(2)包含匹配进行2次搜索,因此只需要结果: 是否可以针对主键进行这2次搜索 如果是这样,运行哪种查询最有效?e、 g.查询或扫描 注: 对于(2),我使用以下代码,但它返回DB中的所有项: