1
resposta

Qual a utilidade de Annotations no Java?

Gostaria de entender melhor qual a utilidade das anotações (annotations) do Java e qual a utilidade dele no JPA e no Spring Web por exemplo?

1 resposta

As annotations são formas mais simples e legíveis de realizar marcações e configurações em métodos, classes e atributos. Você verá e usará muitas delas quando for aprender Spring e testes unitários. Como exemplo de anotações você verá muito entidades dessa forma:

@Entity    //Marca essa classe como uma entidade a ser persistida no banco de dados, além de não precisas mais faze-la implementar Serializable
public class Customer {

    @Id    // Marca o atributo id da classe como identificador no banco de dados
        @GeneratedValue(strategy = GenerationType.IDENTITY)    //Define como esse ID será gerado, neste exemplo será gerado automaticamente pelo BD auto incrementando o valor quando inserido persistido.
    private Long id;
    @NotBlank    //Lança uma exceção caso não seja atribuído valor a variável.
    private String name;
    @Email    //Realiza validações necessárias se é um e-mail válido (Se possui @, numero de caracteres, pontos, etc). Lança exceção caso não seja um e-mail válido
    private String email;
}
// Getters, setters e construtores

Em Spring as anotações mais utilizadas são @RestController, @Service, @Repository, @Bean, @RequestMapping, @Get, @Put, @Delete, @Post, @Patch, @Valid, @RequestBody, @PathVariable, entre inúmeras outras.

Com o tempo você se habitua com elas e pode inclusive criar suas próprias anotações. Espero ter ajudado e se ficou alguma dúvida não hesite em perguntar.