在 Spring Boot 开发中,注解是简化配置、实现特定功能的核心方式。以下是一些常见注解及其作用:
-
@SpringBootApplication
- 作用:标识 Spring Boot 应用的主类,是一个组合注解,包含 @Configuration、@EnableAutoConfiguration 和 @ComponentScan
- 位置:通常用在项目的主启动类上
-
@Controller
- 作用:标识一个类为 Spring MVC 控制器,用于处理 HTTP 请求
- 特点:返回值通常是视图名称,配合 @ResponseBody 可返回数据
-
@RestController
- 作用:是 @Controller 和 @ResponseBody 的组合注解
- 特点:默认所有方法都返回数据(如 JSON/XML),而非视图
-
@RequestMapping
- 作用:映射 HTTP 请求到控制器方法
- 可指定 value(路径)、method(请求方法)、params 等属性
-
@GetMapping/@PostMapping/@PutMapping/@DeleteMapping
- 作用:分别对应 HTTP 的 GET、POST、PUT、DELETE 请求的快捷注解
- 是 @RequestMapping 的简化形式,如 @GetMapping 等价于 @RequestMapping (method = RequestMethod.GET)
-
@Autowired
- 作用:自动注入依赖对象
- 可用于构造方法、字段、setter 方法上,默认按类型注入
-
@Service
- 作用:标识业务逻辑层的组件
- Spring 会自动扫描并管理这些 Bean
-
@Repository
- 作用:标识数据访问层(DAO)的组件
- 还能将数据库操作的异常转换为 Spring 的统一数据访问异常
-
@Component
- 作用:通用的组件标识注解
- 当某个类不属于 @Controller、@Service、@Repository 时使用
-
@Configuration
- 作用:标识一个类为配置类,替代传统的 XML 配置
- 类中的 @Bean 方法会生成 Bean 并交给 Spring 容器管理
-
@Bean
- 作用:在 @Configuration 类中使用,用于定义一个 Bean
- 方法的返回值将作为 Bean 实例,方法名默认作为 Bean 的名称
-
@Value
- 作用:注入配置文件中的属性值
- 例如:@Value ("${app.name}") private String appName;
-
@ConfigurationProperties
- 作用:将配置文件中的属性批量绑定到 Java 对象
- 通常配合 @Component 使用,实现配置的集中管理
-
@PathVariable
- 作用:获取 URL 路径中的参数
- 例如:@GetMapping ("/user/{id}") 中获取 id 的值
-
@RequestParam
- 作用:获取请求参数的值
- 可用于处理 URL 查询参数或表单提交的参数
-
@ResponseBody
- 作用:将方法返回值直接作为响应体返回,而非视图
- 通常用于返回 JSON 或 XML 格式的数据
-
@RequestBody
- 作用:将 HTTP 请求体中的数据绑定到方法参数
- 常用于接收 JSON 格式的请求数据
-
@Transactional
- 作用:声明事务管理
- 可用于类或方法上,指定事务的传播行为、隔离级别等