Spring Boot 中的注解简化了传统Spring应用的配置过程,使得快速开发轻量级的应用变得非常容易。以下是一些Spring Boot中常见的注解及其作用:
1. **@SpringBootApplication**
- 这是最核心的注解,它是一个组合注解,包含了`@SpringBootConfiguration`、`@EnableAutoConfiguration` 和 `@ComponentScan` 三个注解的功能。
- `@SpringBootConfiguration` 表示这是一个Spring配置类。
- `@EnableAutoConfiguration` 开启自动配置功能,Spring Boot会根据类路径中的jar包依赖和项目结构来决定如何自动配置Spring Bean。
- `@ComponentScan` 自动扫描指定包下的所有包含@Component、@Service、@Repository、@Controller等注解的类,将其纳入Spring容器管理。
2. **@RestController**
- 标记在一个类上,意味着此类中的所有处理方法都会以HTTP响应的形式返回其返回值,通常用于创建RESTful Web服务。
3. **@RequestMapping** 及衍生注解(如`@GetMapping`, `@PostMapping`, `@PutMapping`, `@DeleteMapping`等)
- 用于映射HTTP请求到相应的控制器方法上,定义URL路由和HTTP方法。
4. **@PathVariable**
- 用于从URL路径中提取变量值,并将其绑定到控制器方法的参数中。
5. **@RequestParam**
- 用于从HTTP请求的查询参数或表单字段中读取数据,并将它们绑定到控制器方法的参数上。
6. **@RequestBody**
- 用于指示控制器方法参数应从HTTP请求体中获取并绑定到对应的Java对象。
7. **@Autowired**
- 用于自动装配bean,Spring容器负责查找并注入相应类型的bean。
8. **@Service** / **@Repository** / **@Controller**
- 分别用于标记业务逻辑类、数据访问类和控制器类,使它们成为Spring托管的bean。
9. **@Component**
- 基础注解,标记一个类作为Spring的组件,可以被Spring容器扫描并管理。
10. **@ConfigurationProperties**
- 用于绑定应用程序属性到类的字段,方便在类中组织和管理配置项。
11. **@EnableJpaRepositories** 或 **@MapperScan**
- 分别用于启用JPA仓库的自动扫描和MyBatis mapper接口的扫描。
12. **@ImportResource**
- 允许导入XML配置文件到Spring Boot的Java配置中。
13. **@Value**
- 用于注入外部属性值到字段或方法参数中。
14. **@ConditionalOn...**
- 一系列条件注解,可以根据类路径、属性值或其他条件决定是否包含某个自动配置类。
15. **@Scheduled**
- 用于标记定时任务方法。
这些注解以及其他Spring Boot相关注解共同构建了一种声明式的编程模型,极大地简化了应用程序的配置与开发。