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). -
@ControllerAdvice
e@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)