Este guia apresenta as anotações mais importantes utilizadas no ecossistema Spring e Spring Boot, focando em funcionalidades de configuração, injeção de dependências, controle de fluxo, mapeamento de dados e testes.
🔹 Injeção de Dependências e Configuração
-
@Autowired: Injeta automaticamente dependências gerenciadas pelo Spring. -
@Component,@Service,@Repository: Declaram classes como beans para serem gerenciadas pelo contênier do Spring. -
@Configuration: Declara uma classe como fornecedora de beans via métodos com@Bean. -
@Value: Injeta valores do application.properties. -
@Profile: Define o perfil em que o bean será carregado. -
@Primary: Define a implementação padrão quando houver múltiplos beans do mesmo tipo.
🔹 Validação de Dados
-
@NotNull,@NotBlank,@NotEmpty: Validação básica de preenchimento. -
@Min,@Positive: Restrição de valores numéricos. -
@Pattern: Expressões regulares para validação de strings. -
@Valid: Indica que os dados de entrada devem ser validados conforme as anotações do bean. -
@Email,@CPF: Valida formatos específicos.
🔹 Web e REST Controllers
-
@RestController: Define a classe como controlador REST. -
@RequestMapping,@GetMapping,@PostMapping,@PutMapping,@DeleteMapping,@PatchMapping: Mapeamento de rotas HTTP. -
@RequestBody,@RequestParam,@PathVariable: Extração de dados da requisição. -
@ResponseBody,@ResponseStatus: Configura o retorno da requisição. -
@CrossOrigin: Permite requisições entre domínios (CORS). -
@ControllerAdvicee@ExceptionHandler: Tratamento global de exceções.
🔹 Persistência com JPA
-
@Entity,@Table: Mapeia classes como entidades de banco de dados. -
@Id,@GeneratedValue: Define a chave primária e sua estratégia de geração. -
@Column: Define atributos da coluna. -
@JoinColumn,@JoinTable,@OneToMany,@ManyToOne,@ManyToMany,@OneToOne: Relacionamentos entre entidades. -
@Embeddable,@Embedded,@EmbeddedId: Tipos incorporáveis. -
@Enumerated: Define o formato de persistência de enums. -
@MappedSuperclass: Herança de atributos entre entidades. -
@CreationTimestamp,@LastModifiedDate,@CreatedDate: Auditoria automática. -
@Query,@Modifying: Consulta personalizada e operações de escrita no banco.
🔹 Testes Automatizados
-
@SpringBootTest: Carrega o contexto da aplicação para testes integrados. -
@DataJpaTest: Testa exclusivamente a camada de repositórios. -
@MockBean,@Mock,@InjectMocks,@Spy: Cria objetos simulados (mocks/spies) para testes. -
@BeforeEach,@AfterEach,@BeforeAll,@AfterAll: Ciclo de vida dos testes. -
@Test,@DisplayName,@TestMethodOrder: Define testes e sua ordem de execução. -
@WithMockUser: Simula autenticação em testes de segurança.
🔹 Segurança e Acessos
-
@EnableWebSecurity,@EnableGlobalMethodSecurity: Habilita segurança HTTP e controle por método. -
@PreAuthorize: Controla acesso a métodos com expressões de segurança. -
@SecurityRequirement: Define requisitos de autenticação em APIs.
🔹 Integração e Cloud
-
@EnableFeignClients,@FeignClient: Habilita e configura chamadas HTTP com Feign. -
@EnableEurekaClient,@EnableEurekaServer: Ativa o discovery de serviços com Eureka.
📄 Considerações Finais
Este compês de anotações cobre os principais recursos e boas práticas em aplicações Spring modernas, otimizando o uso do framework em projetos reais com segurança, integração, persistência e testes.
Top comments (0)