网站首页 > 技术文章 正文
Spring Boot 提供了大量的注解,用于简化配置和加速程序开发。
常用注解有以下这些:
组件管理注解
1、Bean相关
- @Component:将一个类标识为Spring组件(Bean),被Spring容器自动检测跟注册。通用组件,适用于任何层次。
- @ComponentScan:自动扫描指定包及其子包的Spring组件。
- @Controller:标识控制层组件,是 @Component 的一个特化,用于表示Web控制器。处理HTTP请求并返回视图或响应数据。
@Controller
public class MyController {
@RequestMapping(“/hello”)
public String hello() {
return “hello”;
}
}
- @RestController:是 @Controller 和 @ResponseBody 的结合,返回的对象会自动序列化为 JSON 或 XML,并写入 HTTP 响应体中。
- @Service:标识服务层组件,是@Component的一个特化,用于表示业务逻辑服务。
- @Repository:标识持久化组件(DAO层),是@Component的一个特化,标识数据访问组件。用于与数据库交互。
- @Bean:方法注解,用于修饰方法,将修饰方法的返回对象添加到Spring容器中,其他组件可以通过依赖注入方式使用这个对象。
- @Configuration:标识一个类为配置类,@Component的一个特化,通常配合@Bean注解一起使用。
- @Scope:声明一个Spring Bean实例的作用域,范围有单例模式、原型模式等。
2、依赖注入
- @Autowired:用于自动注入依赖对象,Spring框架提供。
- @Resource:按名称自动注入依赖对象(可以按类型、按默认名称),JDK提供。
- @Qualifier:与@Autowired一起使用,用于指定要注入的哪个Bean的名称,存在多个相同类型的Bean时,可以使用@Qualifier指定注入哪一个。
Web相关(请求处理注解)
3、请求映射
- @RequestMapping:映射HTTP请求到处理方法上,支持GET/POST/PUT/DELETE等请求方法。可以标注在类或方法上。标注在类上时,表示类中的所有响应请求的方法都是以该类路径为父路径。
- @GetMapping、@PostMapping、@PutMapping、@DeleteMapping:分别用于映射 HTTP GET、POST、PUT、DELETE 请求到处理方法上。它们是 @RequestMapping 的特化,分别对应不同的 HTTP 请求方法。
- @RequestParam:用于将请求参数绑定到 Controller 方法的参数上。主要用于处理 GET、POST 等请求中的查询参数,例如将 example.com/api?param1=… 中的 param1 和 param2 参数设置到方法的参数上。
- @PathVariable:用于从请求URL路劲中提取变量值,并将其绑定到控制器方法的参数上。
4、请求体处理
- @RequestBody:将 HTTP 请求体的内容(如 JSON、XML)转换为 Java 对象。通常用于接收前端传递的数据,标注在方法的参数上。
- @ResponseBody:将方法的返回值转换为指定格式(如 JSON、XML)作为 HTTP 响应的内容返回给客户端。通常与 @RequestMapping或 @GetMapping 等注解一起使用在方法上。
配置相关
5、配置类
- @Configuration:标记类为配置类,定义Bean。
- @Bean:在配置类中声明Bean实例,交由Spring IOC容器管理。
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
6、条件控制
- @ConditionalOnProperty:根据配置文件属性动态加载Bean。
- @ConditionalOnClass:当类路径存在指定类时生效。
7、属性注入
- @ConfigurationProperties:用于将配置属性绑定到一个实体类上。通常用于从配置文件中读取属性值并绑定到类的字段上。
- @Value:用于注入属性值,通常从配置文件中获取。标注字段上,并指定属性值来源(如配置文件中的某个属性)。
配置启动注解
8、启动配置
- @SpringBootApplication:用于标识 SpringBoot 应用程序的入口类。它是一个组合注解,包括了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan 三个注解。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- @EnableAutoConfiguration:启用 Spring Boot 的自动配置机制,根据添加的依赖和配置文件自动配置 Spring 应用。
其他常用
9、定时任务
- @Scheduled:声明一个方法需要定时执行。标注在方法上,并指定定时执行的规则(如每隔一定时间执行一次)。
10、事务管理
- @Transactional:声明事物管理,标注在类或方法上,指定事物传播行为,隔离级别等。
11、数据校验
- @Valid:结合 JSR-303 校验请求体参数(如 @NotBlank, @Email)
12、全局异常处理
- @ControllerAdvice+@ExceptionHandler:定义全局统一处理异常。
猜你喜欢
- 2025-07-28 如何优雅的实现 Spring Boot 接口参数加密解密?
- 2025-07-28 SpringBoot注解最全详解(9大常用注解)
- 2025-07-28 SpringBoot注解全攻略:这些注解让你的代码更专业!
- 2025-07-28 后端使用技术 —— 规范统一入口方法
- 2025-07-28 答应我,不要再用 Map 做出入参了好吗
- 2025-07-28 关于远程调用feign的优雅写法(feign远程调用怎么用restful)
- 2025-07-28 自研分布式高性能RPC框架及服务注册中心ApiRegistry实践笔记
- 2025-07-28 spring基础面试题整理(2)(spring基本面试题)
- 2025-07-28 Spring Boot异常处理太难搞,这样实现让你轻松应对!
- 2025-07-28 独立开发:高效集成大模型,看这篇就够了
- 1519℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 609℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 522℃MySQL service启动脚本浅析(r12笔记第59天)
- 490℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 489℃启用MySQL查询缓存(mysql8.0查询缓存)
- 477℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 457℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 454℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)