igorlops / Anotacoes-Spring-Framework

Repositório criado com a finalidade de listar todas as anotações com as quais já tive contato (166 anotações) em projetos desenvolvidos com Java e Spring.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NPM

Anotações Spring Framework


A   |    B   |    C   |    D   |    E   |    F   |    G   |    I   |    J   |    L   |    M   |    N   |    O   |    P   |    Q   |    R   |    S   |    T   |    V   |    W   |   


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

👨‍🎓 Autor

Lucas Araujo

lucarauj | LinkdeIN

About

Repositório criado com a finalidade de listar todas as anotações com as quais já tive contato (166 anotações) em projetos desenvolvidos com Java e Spring.

License:MIT License