Prefácio
Atualmente, mais e mais projetos arquitetônicos estão usando anotações, como Spring3.0, Struts2 e outras estruturas. Vamos primeiro olhar para a definição da anotação. A seguir, é apresentado um código que usa o JDK 5 anotação @target:
@Target ({elementType.method})@retention (retentionpolicy.runtime)@herded@documedpublic @interface asynlog {}1. Uso de @target
java.lang.annotation.target
Usado para definir o escopo do uso da anotação
java.lang.annotation.ElementType
Target Especifica escopos de anotação para usar coleções de enumeração
2. Uso do ElementType
| Obtenha o valor | Escopo de anotação |
| MÉTODO | Pode ser usado em métodos |
| TIPO | Pode ser usado em classes ou interfaces |
| Anotação_type | Pode ser usado em tipos de anotação (tipos modificados por @interface) |
| CONSTRUTOR | Pode ser usado em métodos de construção |
| CAMPO | Pode ser usado no domínio |
| LOCAL_VARIABLE | Pode ser usado em variáveis locais |
| PACOTE | Usado para gravar informações do pacote de arquivos java |
| PARÂMETRO | Pode ser usado em parâmetros |
Aqui está um destaque: ElementType. PACOTE. Não é usado em classes gerais, mas no pacote de arquivos fixo-info.java. Deve-se enfatizar aqui que a nomeação deve ser "Package-Info". Como o Package-Info.java não é uma classe legal, o uso do Eclipse para criar uma classe solicitará que seja ilegal, portanto, você precisa criar o package-info.java na maneira de criar um arquivo.
Por exemplo, um pacote de intervalo pode ser usado para definir:
@Target ({elementType.package, elementType.method})@retention (retentionpolicy.runtime)@herded@documedpublic @interface asynlog {}Em seguida, crie o arquivo: package-info.java, com o conteúdo da seguinte forma:
A cópia do código é a seguinte:
@Asynlog
pacote org.my.commons.logs.annotation;
Chave: as anotações só podem ser usadas dentro do intervalo definido pelo ElementType, caso contrário, um erro será compilado. Por exemplo: o escopo contém apenas elementType.method, o que significa que a anotação só pode ser usada no método da classe, e a exceção será compilada fora do escopo do uso.