Spring基础:SpringBoot中常用注解

Spring Boot 提供了大量的注解,用于简化配置和加速程序开发

常用注解有以下这些:

组件管理注解

1、Bean相关

  • @Component :将一个类标识为Spring组件(Bean),被Spring容器自动检测跟注册。通用组件,适用于任何层次
  • @ComponentScan :自动扫描指定包及其子包的Spring组件。
  • @Controller :标识控制层组件,是 @Component 的一个特化,用于表示Web控制器处理HTTP请求并返回视图或响应数据
java 复制代码
@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容器管理。
java 复制代码
@Configuration  
public class AppConfig {  
    @Bean  
    public MyService myService() {  
        return new MyServiceImpl();  
    }  
}

6、条件控制

  • @ConditionalOnProperty :根据配置文件属性动态加载Bean
  • @ConditionalOnClass :当类路径存在指定类时生效。

7、属性注入

  • @ConfigurationProperties :用于将配置属性绑定到一个实体类 上。通常用于从配置文件中读取属性值并绑定到类的字段上。
  • @Value :用于注入属性值,通常从配置文件中获取。标注字段上,并指定属性值来源(如配置文件中的某个属性)。

配置启动注解

8、启动配置

  • @SpringBootApplication :用于标识 SpringBoot 应用程序的入口类。它是一个组合注解,包括了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan 三个注解。
java 复制代码
@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:定义全局统一处理异常。
相关推荐
一 乐4 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
Boilermaker19924 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维4 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
alonewolf_995 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子5 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34165 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
恋爱绝缘体16 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wszy18096 小时前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
wszy18096 小时前
顶部标题栏的设计与实现:让用户知道自己在哪
java·python·react native·harmonyos
期待のcode7 小时前
前后端分离项目 Springboot+vue 在云服务器上的部署
服务器·vue.js·spring boot