DEV Community

Cover image for Spring boot Annotations
Kauê Matos
Kauê Matos

Posted on

1

Spring boot Annotations

📜 A

  • ActiveProfiles("test"): sobrescreve as propriedades definidas no arquivo application.properties ao executar os testes, usando o perfil "test".
  • AfterAll: indica que o método será executado depois de todos os testes em uma classe de teste.
  • AfterEach: indica que o método será executado depois de cada teste em uma classe de teste.
  • AllArgsConstructor: gera automaticamente um construtor com todos os atributos da classe.
  • Autowired: delega ao Spring a injeção de dependência e inicialização do objeto.
  • AutoConfigureMockMvc: injeta o objeto MockMvc no contexto da aplicação para testes de integração.
  • AutoConfigureJsonTesters: habilita e configura automaticamente os testadores de JSON para os testes.

📜 B

  • Bean: indica que o método retorna um objeto gerenciado pelo Spring e que deve ser registrado como um bean.
  • BeforeAll: indica que o método será executado antes de todos os testes em uma classe de teste.
  • BeforeEach: indica que o método será executado antes de cada teste em uma classe de teste.

📜 C

  • Captor: captura argumentos de um método para uso em testes.
  • Cacheable: permite que o resultado de um método seja armazenado em cache pelo Spring para evitar a execução repetida do método com os mesmos parâmetros.
  • CircuitBreaker: habilita o padrão de circuit breaker em um método de um aplicativo Spring.
  • CPF: anotação que valida se um valor numérico passado corresponde a um número de CPF válido.
  • CollectionTable: usada para mapear uma tabela de coleção em uma entidade.
  • Column: especifica o mapeamento entre um atributo de entidade básico e a coluna correspondente na tabela de banco de dados.
  • Component: é um estereótipo genérico para qualquer componente gerenciado pelo Spring.
  • Configuration: indica que a classe é uma classe de configuração do Spring que define beans e configurações adicionais.
  • ConfigurationProperties: usada para mapear um grupo de propriedades em uma classe.
  • ConvertGroup(from = Default.class, to = ValidationGroups.{parameter}.class): converte de um "grupo de validação" para outro.
  • ControllerAdvice: permite manipular exceções globalmente em um aplicativo Spring.
  • CreatedDate: recurso de auditoria fornecido pelo Spring Data JPA que rastreia a data de criação de uma entidade.
  • CreationTimestamp: registra automaticamente a data e hora em que uma entidade é criada no banco de dados.
  • CrossOrigin: permite a comunicação entre domínios para métodos manipuladores de solicitações.

📜 D

  • Data: Gera o código padronizado (getters, setters, toString apropriado, equals e implementações hashCode) para os campos de uma classe.
  • DataJpaTest: Usada para testar uma interface Repository em um ambiente de teste.
  • DisplayName("String"): Usada para fornecer um nome personalizado para a classe de teste ou método de teste.
  • DeleteMapping: Usada para mapear solicitações HTTP DELETE para métodos manipuladores específicos.
  • DecimalMin: Especifica que a propriedade decorada com essa anotação deve ter um valor maior ou igual ao mínimo especificado.
  • DisplayName(): Nomeia um teste.
  • DisableIfEnvironmentVariable(): Executa o método se as variáveis de ambiente fornecidas forem falsas.

📜 E

  • EqualsAndHashCode: Gera automaticamente os métodos equals e hashCode para os campos do objeto.
  • Embeddable: Especifica que um tipo é incorporável e será gerenciado pela entidade proprietária.
  • Embedded: Especifica que um determinado atributo de entidade representa um tipo incorporável.
  • EmbeddedId: Especifica que o identificador de entidade é um tipo incorporável.
  • EnableFeignClients: Habilita o uso do Feign na aplicação.
  • EnableCaching: Ativa o cache na aplicação.
  • EnableFeignClients: habilita o processo de criação automática de clientes Feign a partir das interfaces marcadas com FeignClient.
  • EnableWebSecurity: Habilita recursos de segurança em uma aplicação.
  • EnableGlobalMethodSecurity: Habilita o uso de anotações com regras de segurança.
  • EnableR2dbcAuditing: Configura o mecanismo de auditoria no contexto do Spring para uso com R2DBC.
  • Enumerated(EnumType.STRING): Especifica que a representação de uma enumeração será armazenada como uma String na coluna correspondente na tabela do banco de dados.
  • ElementCollection: Especifica que um campo representa uma coleção de elementos embutidos ou básicos.
  • ElementCollection(fetch = FetchType.EAGER): Especifica que a coleção de elementos embutidos ou básicos deve ser buscada imediatamente.
  • Entity: Especifica que a classe anotada representa uma entidade.
  • Email: Verifica se o valor de um campo possui as características de um endereço de e-mail.
  • EnableIfEnvironmentVariable(): Executa o método se as variáveis de ambiente fornecidas forem verdadeiras.
  • EnableOnOs(): Executa o método se os parâmetros informados relacionados ao sistema operacional forem verdadeiros.
  • EnableOnJre(): Executa o método se os parâmetros informados relacionados à JRE forem verdadeiros.
  • EnableForJreRange(): Executa o método se os parâmetros informados relacionados às versões da JRE forem verdadeiros.
  • EnableEurekaServer: permite que o aplicativo funcione como um servidor de registro para outros serviços.
  • EnableEurekaClient: permite que o aplicativo se registre em um servidor Eureka e utilize a descoberta de serviços fornecida pelo Eureka.
  • ExtendWith(MockitoExtension.class): Permite o uso do Mockito como uma extensão para o framework de teste, fornecendo recursos adicionais para criação e uso de objetos simulados (mocks) durante os testes.
  • ExceptionHandler: Permite que um método trate uma exceção específica quando ela é lançada.

📜 F

  • FeignClient: Injeta o cliente no contexto do Spring para facilitar a comunicação com serviços HTTP.
  • Future: Define que a variável só pode receber uma data futura.

📜 G

  • GeneratedValue(GenerationType.AUTO): Estratégia padrão para geração de valores de identificador. A JPA escolhe a estratégia mais apropriada com base no banco de dados configurado para a aplicação.
  • GeneratedValue(GenerationType.SEQUENCE): Utiliza uma sequência no banco de dados para gerar os valores dos identificadores. É necessário adicionar a anotação SequenceGenerator para configurar a sequência.
  • GeneratedValue(GenerationType.IDENTITY): Usada quando o banco de dados suporta colunas autoincrementais, como AUTO_INCREMENT no MySQL ou IDENTITY no SQL Server.
  • GeneratedValue(GenerationType.UUID): Indica que o valor do identificador único da entidade será gerado pelo provedor de persistência usando a estratégia UUID.
  • GeneratedValue(GenerationType.TABLE): Utiliza uma tabela especial no banco de dados para gerar os valores dos identificadores. É necessário adicionar a anotação TableGenerator para configurar a tabela.
  • GetMapping: Mapeia solicitações HTTP GET para métodos manipuladores específicos.
  • Getter: Cria automaticamente os métodos getter para todos os atributos da classe usando o Lombok.

📜 I

  • Id: Especifica o identificador da entidade. Uma entidade sempre deve ter um atributo identificador.
  • InjectMocks: Cria e injeta instâncias simuladas para serem usadas em testes com o Mockito.

📜 J

  • JsonAlias: Mapeia apelidos alternativos para os campos recebidos em JSON.
  • JsonFormat(pattern = "dd/MM/yyyy HH:mm"): Especifica o formato esperado para a data/hora ao serializar ou desserializar em JSON.
  • JsonInclude(Include.NON_NULL): Inclui apenas as propriedades não nulas ao serializar em JSON.
  • JsonProperty(access = READ_ONLY): Indica que o parâmetro é somente leitura.
  • JsonIgnore: Marca uma propriedade para ser ignorada durante a serialização/desserialização JSON no nível do campo.
  • JsonIgnoreProperties: Marca uma propriedade ou um grupo de propriedades para serem ignoradas durante a serialização/desserialização JSON.
  • JoinColumn: Define o mapeamento físico no lado proprietário em um relacionamento um-para-muitos/muitos-para-um.
  • JoinTable: Define o nome de uma tabela intermediária em um relacionamento muitos-para-muitos.

📜 L

  • LastModifiedDate: Utilizada para rastrear quando a entidade foi modificada pela última vez.

📜 M

  • Min: Usada para aplicar validações de valor mínimo a propriedades de um objeto.
  • Modifying: Informa ao Spring Data que a consulta anotada com @Query é uma operação de escrita (atualização, exclusão, etc.) e não uma consulta de leitura.
  • Modifying(clearAutomatically = true): indica ao Spring Data JPA que a consulta resultará em uma modificação no banco de dados e que o contexto de persistência deve ser limpo automaticamente após a execução da consulta.
  • Mock: Cria um objeto simulado (mock) usado para testes com o Mockito.
  • MockBean: Cria um objeto simulado (mock) de uma classe ou interface e o adiciona ao contexto de aplicação para uso em testes.
  • ManyToOne: Especifica um relacionamento de banco de dados muitos-para-um.
  • ManyToMany: Especifica um relacionamento de banco de dados muitos-para-muitos, onde muitos registros de uma entidade estão relacionados com muitos registros de outra entidade.
  • MappedSuperclass: Usada em classes que contêm campos e métodos que devem ser herdados por entidades filhas.

📜 N

  • NotBlank: Valida que um atributo do tipo String não pode ser nulo e nem vazio.
  • NotNull: Checa se o valor anotado não é nulo (null).
  • NoArgsConstructor: Gera um construtor sem parâmetros automaticamente.
  • NotEmpty: Valida que a propriedade não é nula nem vazia. Pode ser utilizada com String, Collection, Map ou array.

📜 O

  • Order: Define a ordem de execução de um componente ou método dentro de um sistema.
  • OneToMany: Especifica um relacionamento de banco de dados um-para-muitos.
  • OneToOne: Especifica um relacionamento de banco de dados um-para-um.

📜 P

  • PathVariable: Indica que o valor da variável virá de uma informação presente na rota.
  • PageableDefault: Permite informar parâmetros padrão de paginação e ordenação.
  • Param: Indica que o parâmetro é um parâmetro de um método.
  • PatchMapping: Mapeia solicitações HTTP PATCH para métodos manipuladores específicos.
  • Pattern: Checa se a propriedade obedece a uma expressão regular.
  • Past: Valida se o valor da data está no passado.
  • PostMapping: Mapeia solicitações HTTP POST para métodos manipuladores específicos.
  • Positive: Valida se o valor numérico passado é positivo.
  • PutMapping: Mapeia solicitações HTTP PUT para métodos manipuladores específicos.
  • PreAuthorize: Verifica a expressão dada antes de executar o método.
  • Primary: Usada quando existem dois métodos anotados com Bean que retornam o mesmo tipo de objeto. Indica qual deles será injetado por padrão quando for solicitado.
  • Profile: Indica em qual perfil (profile) o bean deve ser carregado.

📜 Q

  • Query: Permite criar instruções SQL personalizadas e expor essas instruções como métodos DAO.

📜 R

  • RestController: Marca a classe como um controlador no qual cada método retorna um objeto de domínio em vez de uma visão.
  • RestControllerAdvice: Torna uma classe um componente especializado em tratar exceções e o retorno dos métodos dessa classe deve ser inserido no corpo da resposta HTTP e convertido para JSON.
  • Repository: Define uma classe como pertencente à camada de persistência (repository).
  • RequestBody: Indica que o valor do objeto virá do corpo da requisição.
  • RequestMapping: Mapeia solicitações da web para classes manipuladoras específicas e métodos manipuladores.
  • RequestParam: Mapeia os parâmetros HTTP para argumentos de métodos.
  • RequiredArgsConstructor: Cria um construtor com todos os atributos finais da classe automaticamente.
  • ResponseBody: Transforma um objeto Java retornado pelo controller em uma representação de recurso solicitada por um cliente REST.
  • ResponseStatus(HttpStatus.OK): Indica que quando a requisição é bem-sucedida, o código de status HTTP retornado deve ser "200 OK".
  • ResponseStatus(HttpStatus.CREATED): Retorna um status code que indica que algum recurso foi criado na aplicação.
  • ResponseStatus(HttpStatus.NO_CONTENT): Retorna um status code que indica que a solicitação HTTP foi concluída com êxito e não há corpo de mensagem.

📜 S

  • Service: Marca uma classe Java como um serviço que executa alguma lógica de negócio.
  • SequenceGenerator: Usada para especificar a sequência de banco de dados usada pelo gerador de identificadores da entidade atualmente anotada.
  • Setter: Cria métodos de configuração (setters) para todos os atributos da classe automaticamente usando o Lombok.
  • Size: Verifica se a quantidade de elementos está entre um tamanho mínimo e máximo especificado, aplicável a tipos como Strings, Collections, Maps e arrays.
  • Spy: Cria um "espião" de um objeto, permitindo a verificação de interações com o objeto durante testes.
  • SecurityRequirement(name = "bearer-key"): Especifica um requisito de segurança (como autenticação do tipo Bearer token) para uma operação.
  • SpringBootTest: Cria o contexto da aplicação Spring para fins de teste, permitindo a injeção de dependências e outras funcionalidades do framework.
  • SpringBootApplication: Indica que a classe principal é uma aplicação Spring Boot.

📜 T

  • Table: Especifica o nome da tabela principal associada à entidade anotada atualmente.
  • Test: Anotação que define um método como um teste.
  • TestMethodOrder(MethodOrderer.OrderAnnotation.class): Executa os testes em ordem especificada pela anotação Order().
  • TestMethodOrder(MethodOrderer.MethodName.class): Executa os testes em ordem alfabética pelo nome do método.
  • TestMethodOrder(MethodOrderer.Random.class): Executa os testes em ordem aleatória.
  • TestMethodOrder(MethodOrderer.DisplayName.class): Executa os testes em ordem especificada pela anotação DisplayName().
  • Transactional: Utilizada nos métodos que requerem transações, garantindo que as operações sejam executadas atomicamente.

📜 V

  • Valid: Indica que o valor do objeto virá do corpo da requisição e precisa ser validado de acordo com as regras de validação definidas.
  • Value: Fornece uma maneira de injetar valores de propriedades em componentes.

📜 W

  • WithMockUser: Permite a execução de testes usando um usuário fictício autenticado.

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay