Introdução
Annotatios são recursos poderosos criados pelo Spring Boot que torna a experiencia do programador muito mais simples e prazerosa. Algumas annotatios são básicas até para os projetos mais simples. Outras, porém podem ser aplicadas em projetos mais complexos, como projetos que são executados em vários ambientes. Abaixo, algumas delas:
@Configuration
Permite que uma classe seja executada antes de iniciar a execução principal do projeto spring. Muito usado para fazer configurações, e pode-se adicionar uma anotação que define também o ambiente dessa configuração. Assim, é possível executar configurações especificas para cada ambiente.
@Bean
Torna global para toda a aplicação uma propriedade/método. Muito útil para caso seja necessário recuperar esse valor em algum momento da execução da aplicação. Pode ser aplicado em configurações de banco de dados ou configurações de e-mail por exemplo.
Para recuperar essa propriedade/método, basta injete-la utilizando o @Autowired, para especificar a intenção de que será uma injeção de dependência e depois adicionar a anotação @Qualifier passando como parâmetro o nome do @Bean. O nome no @Bean pode ser setado, mas caso não seja, será utilizado o nome do próprio método.
É possível também criar uma interface, e subscrever os métodos dessa interface no retorno do método do @Bean utilizando a annotation @Override
A baixo um exemplo de utilização do @Bean, em que é executado um comando para se exibir uma mensagem no console da aplicação.
@Override
Permite que um método sobrescreva um outro método de uma superclasse de um mesmo nome.
@Decrepated
Utilizada para indicar que um método não deve mais ser utilizado. Ou seja, que esta obsoleto e que outro deve ser utilizado no lugar.
@SupperessWarnings
Permite que os alertas que naturalmente seriam apontados para aquela classe deixem de ser considerados, por parâmetro é passado um value, e dentro desse value são passados os alertas específicos que se deseja serem desconsiderados para esta classe. Outros parâmetros possíveis são o all, que desabilita todos os alertas, e o deprecation que desabilita os alertas para códigos obsoletos.
@Profile
Se utilizada junto com a @Configuration. É possível fazer com que essa classe de configuração seja executada de acordo com o ambiente parametrizado nesta annotation. Como mostra a figura a baixo:
@Retention e @Target
São utilizadas para criar annotations. Se uma classe possuir uma grande quantitade de annotation, é possível criar assim uma nova annotation que vai englobar todas as outras, reduz-se assim o número de annotatios da classe para um. Como mostra as figuras a baixo:
Um detalhe importante é a classe que vai agrupar as annotations deve ser criada com o tipo Annotation.
Conclusão
Conclui-se então que este é um recurso poderosíssimo que possibilita novas formas de implementação para um projeto. São indispensáveis para os programadores que querem se tornar especialistas em Java com Spring Boot.