2016-07-20 7 views
1

В Spring AOP документа, он говорит:разницы между @Target и @annotation

@Target - пределы соответствие для точек соединения (выполнения методов при использовании Spring AOP), где класс исполняющего объекта имеет аннотацию данного типа

@annotation - пределы, соответствующие точки соединения, где субъект точки соединения (метод выполняется в Spring AOP) имеют данный аннотации

Я думаю @Target будет соответствовать, если объект имеет заданную аннотацию, как

@MyAnnotation 
public class Foo {} 

в то время как @annotation будет соответствовать аннотацию на метод, как:

public class Foo { 

    @MyAnnotation 
    public void doSomething() {} 
} 

мое понимание правильно?

+1

Да, ваше понимание здесь верно. Ваш собственный ответ ниже. – kriegaex

ответ

0

Я открыл этот вопрос, основываясь на этом issue, wilkinsona дал ответ:

Ключевым отличием является то, что @Target соответствует типу выполнения, тогда как @annotation соответствует статически объявленный тип.

+0

Я не согласен. Основное различие заключается в том, что вы описываете в примере кода вашего собственного вопроса. Значит, ты все время знал ответ. В следующий раз, возможно, просто попробуй посмотреть, что произойдет. – kriegaex

Смежные вопросы