Skip to content

Spring Framework Blog

Menu
  • Home
  • Spring
  • Spring Boot
  • About
Menu

Spring Annotations

Posted on May 13, 2025May 13, 2025 by wpadmin

Here’s a comprehensive, categorized summary table of key Spring annotations used across all major areas of the Spring ecosystem — including core, dependency injection, web, data (JPA), AOP, configuration, security, testing, and bootstrapping.


✅ Spring Annotations Summary Table (All Areas)

CategoryAnnotationPurpose
🔧 Core / Component Scanning@ComponentGeneric Spring-managed component
@ServiceBusiness/service layer component
@RepositoryDAO component; translates exceptions
@ControllerWeb controller (MVC, returns views)
@RestControllerREST API controller (@Controller + @ResponseBody)
@ComponentScanScans packages for annotated components

CategoryDependency Injection
@AutowiredAutomatically injects dependencies
@QualifierResolves ambiguity when multiple beans of the same type exist
@InjectJSR-330 alternative to @Autowired
@Value("${property}")Injects value from properties/yaml
@RequiredEnsures a bean property is injected (legacy use)

CategoryConfiguration / Bootstrapping
@ConfigurationDeclares a class that defines Spring beans
@BeanDefines a Spring bean method inside @Configuration
@ImportImports other configuration classes
@PropertySourceLoads external .properties files
@EnableAutoConfigurationEnables Spring Boot auto-config (used by @SpringBootApplication)
@SpringBootApplicationCombines @Configuration, @EnableAutoConfiguration, and @ComponentScan

CategorySpring MVC / Web
@RequestMappingMaps HTTP requests to methods (can use method attribute)
@GetMapping, @PostMapping, etc.Shorthand for HTTP verbs
@PathVariableBinds URI template variable
@RequestParamBinds query parameters
@RequestBodyBinds request body to a method parameter
@ResponseBodyReturns value as response body
@ModelAttributeBinds form data to a model
@SessionAttributesStores attributes in session

CategoryJPA / Data
@EntityMarks a class as a JPA entity (DB table)
@Table(name = "...")Specifies table name
@IdPrimary key field
@GeneratedValue(...)Auto-generates IDs
@Column(...)Maps field to DB column
@OneToMany, @ManyToOne, etc.Define entity relationships
@JoinColumnSpecifies the foreign key
@RepositoryDAO layer marker
@EnableJpaRepositoriesEnables Spring Data JPA

CategoryAOP (Aspect-Oriented Programming)
@AspectMarks a class as an aspect (cross-cutting logic)
@Before, @After, @AroundDefine when advice runs relative to join points
@PointcutDefines reusable pointcut expressions
@EnableAspectJAutoProxyEnables support for handling components marked with @Aspect

CategorySpring Security
@EnableWebSecurityEnables Spring Security web integration
@PreAuthorizeMethod-level access control (SpEL support)
@SecuredRestricts method access to certain roles
@WithMockUserMocks a user in tests

CategoryTesting
@SpringBootTestLoads full application context
@WebMvcTestTests only web layer (controllers)
@DataJpaTestTests JPA repositories
@MockBeanMocks a Spring bean in the context
@AutowiredInjects real or mocked bean into test
@TestConfigurationDefines custom test configuration class
@ExtendWith(SpringExtension.class)Integrates Spring TestContext with JUnit 5

Would you like a downloadable version (Markdown, PDF, etc.) or examples for a specific area like Spring Boot REST APIs, Spring Data, or Spring Security?

  • Spring
  • Documentation
  • References
  • Toc
  • Books
  • Certification
  • AOP
  • Config
  • Java
  • Java core
  • JDBC
  • JPA
  • Rest
  • Security
  • Spring
  • Spring Boot
  • Spring Core
  • Spring Data
  • Spring MVC
  • Spring Rest
  • Spring Security
  • Tests
  • Transactions
  • Uncategorized

Recent Posts

  • Spring Annotations
  • Java Tests
  • Java operators
  • Java versions
  • Java Oracle Licenses
  • Configuration properties
  • MockMvc
  • Spring Security III
  • MVC Controller Method Params
  • JPA Methods
  • Transaction propagation and isolation
  • Spring JDBC
  • Spring Boot Auto-Configuration
  • Spring Resource interface
  • JSR 330 Standard Annotations
  • Spring Aware Interfaces
  • Spring Transactions
  • Spring Boot Core
  • MVC Rest
  • Spring Boot JPA
©2025 Spring Framework Blog | Built using WordPress and Responsive Blogily theme by Superb