在 Java 开发中,Spring 框架及其衍生技术(如 Spring MVC 和 Spring Boot)已经成为构建企业级应用的首选工具。这些框架的核心功能离不开各种注解的支持。本文将全面解析 Spring、Spring MVC 和 Spring Boot 中的核心注解,帮助开发者更好地理解和使用这些框架。
一、Spring 核心注解
Spring 框架的核心是依赖注入(DI)和面向切面编程(AOP)。以下是 Spring 中最常用的核心注解:
1. Bean 相关注解
-
@Component
通用的注解,用于标记一个类为 Spring 容器管理的 Bean。
-
@Service
用于标记服务层的组件,是
@Component
的特化版本。 -
@Repository
用于标记数据访问层(DAO)的组件,是
@Component
的特化版本。 -
@Controller
用于标记控制器层的组件,通常与 Spring MVC 一起使用。
-
@Configuration
标记一个类为配置类,相当于 XML 配置文件。
-
@Bean
在配置类中定义 Bean,相当于 XML 中的
<bean>
标签。
2. 依赖注入相关注解
-
@Autowired
自动注入依赖,可以用于字段、构造方法或 setter 方法。
-
@Qualifier
当有多个相同类型的 Bean 时,用于指定具体的 Bean。
-
@Value
用于注入属性值,通常用于注入配置文件中的值。
3. AOP 相关注解
-
@Aspect
标记一个类为切面类。
-
@Before
、@After
、@Around
定义切面中的通知方法。
二、Spring MVC 核心注解
Spring MVC 是 Spring 框架中用于构建 Web 应用的模块。以下是 Spring MVC 中的核心注解:
1. 控制器相关注解
-
@RequestMapping
映射 HTTP 请求到控制器方法,可以指定 URL 路径和 HTTP 方法。
-
@GetMapping
、@PostMapping
、@PutMapping
、@DeleteMapping
是
@RequestMapping
的特化版本,分别对应不同的 HTTP 方法。 -
@RestController
组合了
@Controller
和@ResponseBody
,用于构建 RESTful Web 服务。
2. 请求参数相关注解
-
@RequestParam
用于绑定请求参数到方法参数。
-
@PathVariable
用于绑定 URL 路径中的变量到方法参数。
-
@RequestBody
用于将请求体中的 JSON 或 XML 数据绑定到 Java 对象。
3. 响应相关注解
-
@ResponseBody
将方法返回值直接写入 HTTP 响应体。
-
@ResponseStatus
指定 HTTP 响应的状态码。
三、Spring Boot 核心注解
Spring Boot 是 Spring 的扩展,旨在简化 Spring 应用的开发和部署。以下是 Spring Boot 中的核心注解:
1. 启动类相关注解
-
@SpringBootApplication
组合了
@Configuration
、@EnableAutoConfiguration
和@ComponentScan
,用于标记 Spring Boot 应用的启动类。
2. 自动配置相关注解
-
@EnableAutoConfiguration
启用 Spring Boot 的自动配置机制。
-
@ConditionalOnClass
、@ConditionalOnMissingBean
条件化配置注解,用于控制 Bean 的加载。
3. 配置文件相关注解
-
@ConfigurationProperties
将配置文件中的属性绑定到 Java 对象。
-
@PropertySource
加载指定的配置文件。
四、图文总结
- Spring核心注解

- SpringMVC核心注解

- SpringBoot核心注解
@Configuration -
组合了- @Configuration注解,实现配置文件的功能@EnableAutoConfiguration
- 打开自动配置的功能,也可以关闭某个自动配置的选@ComponentScan -
Spring组件扫描