Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java反射提取注释值?_Java_Spring_Reflection_Spring Aop_Java Ee 7 - Fatal编程技术网

使用java反射提取注释值?

使用java反射提取注释值?,java,spring,reflection,spring-aop,java-ee-7,Java,Spring,Reflection,Spring Aop,Java Ee 7,我有以下课程 我在服务类中自动连接了someDao,作为@autowired someDao someDao。 我将服务中的逻辑称为someDao.getName(2) SomeServiceImpl.java SomeDao.java SomeDaoImpl.java SomeAspect.java CustomAnnotation具有@保留(RetentionPolicy.RUNTIME) 在上面的方面中,String name=myAnnotation.value()应该给我someval

我有以下课程

我在服务类中自动连接了
someDao
,作为
@autowired someDao someDao
。 我将服务中的逻辑称为
someDao.getName(2)

SomeServiceImpl.java SomeDao.java SomeDaoImpl.java SomeAspect.java
CustomAnnotation
具有
@保留(RetentionPolicy.RUNTIME)


在上面的方面中,
String name=myAnnotation.value()
应该给我
somevalue
,但它给的是
null
。有什么建议吗?但若我将
@CustomAnnotation(“somevalue”)
保留在接口中,那个么它就会给出值。注释接口方法好吗?

这是因为默认的spring APO代理从接口而不是类获取方法。因此,当方法调用来自接口而不是类时

您有几个选择:

1.或者您将xml配置更改为
,以获得代理接口后面的类,但我没有对此做太多研究


希望这有帮助,因为默认的spring APO代理从接口而不是类获取方法。因此,当方法调用来自接口而不是类时

您有几个选择:

1.或者您将xml配置更改为
,以获得代理接口后面的类,但我没有对此做太多研究


希望这有帮助,因为默认的spring APO代理从接口而不是类获取方法。因此,当方法调用来自接口而不是类时

您有几个选择:

1.或者您将xml配置更改为
,以获得代理接口后面的类,但我没有对此做太多研究


希望这有帮助,因为默认的spring APO代理从接口而不是类获取方法。因此,当方法调用来自接口而不是类时

您有几个选择:

1.或者您将xml配置更改为
,以获得代理接口后面的类,但我没有对此做太多研究


希望这有助于等待,is
myAnnotation.value()
为您提供
null
或is
myAnnotation
null
?Sotirios,myAnnotation.value为null。我从答案下面得到了答案。谢谢你的回复。等等,是
myAnnotation.value()
给你
null
还是
myAnnotation
null
?Sotirios,myAnnotation.value是null。我从答案下面得到了答案。谢谢你的回复。等等,是
myAnnotation.value()
给你
null
还是
myAnnotation
null
?Sotirios,myAnnotation.value是null。我从答案下面得到了答案。谢谢你的回复。等等,是
myAnnotation.value()
给你
null
还是
myAnnotation
null
?Sotirios,myAnnotation.value是null。我从答案下面得到了答案。谢谢你的回答。阿诺,谢谢你的回答。我是用你的第三个解决方案做的。阿诺,谢谢你的回答。我是用你的第三个解决方案做的。阿诺,谢谢你的回答。我是用你的第三个解决方案做的。阿诺,谢谢你的回答。我是用你的第三个解决方案做的。
public class SomeServiceImpl{

@Autowired SomeDao someDao
//call dao methods using someDao
}
public  interface SomeDao{

 String getName(Int id);
}
public class SomeDaoImpl implements SomeDao{

 @CustomAnnotation("somevalue")
 public String getName(int id){
   //logic

  }


}
@Around("execution(public * *(..)) && @annotation(com.mycompany.CustomAnnotation)")
    public Object procedeNext(ProceedingJoinPoint call) throws Throwable {

  //Access annotation value
        MethodSignature signature = (MethodSignature) call.getSignature();
        Method method = signature.getMethod();
        CustomAnnotation myAnnotation =   method.getAnnotation(CustomAnnotation.class);
        String name = myAnnotation.value();
            //here i am expecting name value "somevalue" but it is returning null


}