SpringBoot常用的注解
1.@SpringBootApplication
解释:这是一个SpringBoot应用程序的核心注解,是一个组合注解,包含了@Configuration、@EnableAutoConfiguration和@ComponentScan
用途:用来标识一个SpringBoot启动类,通常开发者在 在主类上使用该注解,用来启动SpringBoot项目并启用自动配置机制。
2.@RestController
解释:这是一个@Controller和@ResponseBody的组合注解
用途:将一个类为RESTful控制器,所有的返回值会自动转换为JSON格式并写入HTTP响应体,常用于构建WebAPI
3.RequestMapping
解释:用于映射HTTP请求到处理方法
用途:定义请求的URL路径及其支持的HTTP方法(如GET、POST等),通常用于处理Web请求
4.@GetMapping/@PostMapping/@PutMapping/DeleteMapping
解释:这些注解是@RequestMapping的简化版,分别用于GET、POST、PUT、DELETE请求
用途:简化HTTP请求映射,分别处理不同类型的请求,减少代码的冗余
5.@AutoWired
解释:用于自动注入Spring容器中的Bean
用途:让Spring自动为一个类的字段、构造方法或方法参数注入所需要的依赖,减少手动操作
6.@Value
解释:用于将外部配置(如application.yml)中的值注入到类中的字段、构造方法或方法参数
用途:可以用来注入配置文件中的值,例如数据库连接信息、应用程序的常量等
7.@Component
解释:将一个类声明为Spring管理的Bean
用途:使该类成为Spring容器的一部分,Spring会自动实例化并管理其生命周期
8.@Service
解释:类似于@Component,但用于表示服务层的类
用途:通常用于表示业务逻辑层的组件
9.@Controller
解释:将一个类声明成控制器,用途处理Web请求
用途:与@RestController类似
10.Configuration
解释:用于一个类为配置类
用途:代替传统的XML配置文件,使用Java配置类来定义Spring的Bean配置
11.@Bean
解释:用途在配置类中定义一个Bean
用途:标记该方法返回的对象为一个Spring管理的Bean,Spring会将其注册到容器中并管理其生命周期
12.@EnableAutoConfiguration
解释:启用SpringBoot的自动配置功能
用途:SpringBoot会根据项目的类路径和项目所以依赖的库自动进行配置,减少开发者手动配置的工作量
13.@PathVariable
解释:用于从URL路径中提取参数
用途:在RESTful风格的API中,常用来获取路径变量值,如/user/{id}中的id
14.ResponseBody
解释:表示方法的返回值会直接写入HTTP响应体中。
用途:用于返回JSON数据或其他格式的数据。
15.@ExceionHandler
解释:用于捕获并处理 控制器中的异常
用途:提供统一的异常处理机制,可以在控制器内处理特定的异常并返回相应的错误信息
Lombok依赖包中:
16.@EqualsAndHashCode
解释:自动生成equals()和hashCode()方法,通常用于对象比较和哈希集合操作
通途:用于在比较对象时,自动生成符合Java规范的equals()和hashCode()方法,减少手动编写的重复代码
17.@NoArgsConstructor / @AllArgsConstructor / @RequiredArgsConstructor
解释:自动生成构造函数。
@NoArgsConstructor: 生成一个无参构造函数。
@AllArgsConstructor: 生成一个全参数构造函数。
@RequiredArgsConstructor: 生成一个包含所有 final 字段和 @NonNull 注解字段的构造函数。
用途:减少手动编写构造函数的工作
18.@Data
解释:综合性注解,等同于同时使用 @Getter, @Setter, @ToString, @EqualsAndHashCode, 和 @RequiredArgsConstructor。
用途:当需要所有这些功能时,可以使用 @Data 注解,简化代码。
19.@Value
解释: 使类成为不可变类,等同于使用 @Getter, @AllArgsConstructor, @EqualsAndHashCode, @ToString,并且所有字段默认 final。
用途:用于需要不可变对象的场景(即对象创建后,字段不可修改)。
20.@NonNull
解释:表示字段、方法参数或方法返回值不能为 null。
用途: 用于增强代码的安全性,特别是在构造函数、setter 或方法中防止传入 null 值。
----------------------------------------------------------
21.@RestControllerAdvice
解释:结合了 @ControllerAdvice 和 @ResponseBody 的功能,主要用于处理全局的异常、数据绑定以及应用程序的响应体。并且会将异常信息以 JSON 格式返回
用途: 允许你在应用中全局处理异常,并将其统一返回为 @ResponseBody 格式,通常用于 RESTful 服务的异常处理。
22.@Validated
解释: 是 Spring 的一个验证注解,用于启用 Spring 的验证功能,通常与 @Valid 一起使用,用于对传入的请求参数进行验证。
通途:常用于控制器方法参数、类、字段上,用于执行 Java Bean Validation(JSR-303)规范的验证。它可以对方法参数、DTO(数据传输对象)等进行校验。
23.@SupperssWarnings
解释:@SuppressWarnings 是 Java 自带的注解,用来抑制编译器的警告信息。
用途:当你不想让编译器显示某些警告时,可以使用此注解,常见的警告包括未使用的变量、未处理的类型参数、可变参数类型不匹配等
24.@Pattern
解释:@Pattern 是 Java Bean Validation 规范中的注解,用于对字符串字段进行正则表达式的校验
用途:通常用于对输入值进行格式验证,确保它符合某个特定的正则表达式,例如验证电子邮件地址、电话号码、身份证号码等。