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?
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?
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.