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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.