Spring Boot注解总结

@SpringBootApplication

组合注解,包含了 @Configuration@EnableAutoConfiguration@ComponentScan

使用:

通常标注在主应用类上,用于启动 Spring Boot 应用。

@RestController

用于标注一个控制器类,表明该类中的方法返回的结果会直接作为响应体返回,通常用于构建 RESTful 风格的 Web 服务。

@Controller

@RequestMapping

  • 用于映射 HTTP 请求到相应的处理方法。

RequestMapping是一个用来处理请求地址映射的注解,可用于类或者方法上。注解在方法上,Controller上不加,此时的请求URL是相对于根目录的。注解在Controller上,这是类的注解是相对根目录的,而方法的注解是相对类路径的。

属性:

method:定义接收浏览器发了哪种请求。method方法返回的是RequestMethod数组,所以method可以通知指定多种请求方式。

value:指定请求的实际地址

params:请求参数,追加在URL上的键值对,可以用来限制请求参数进行请求的过滤。

@GetMapping@PostMapping@PutMapping@DeleteMapping

@RequestMapping 的细化注解,分别对应 HTTP 的 GET、POST、PUT、DELETE 方法。

@Autowired

用于自动装配依赖的对象。

@ResponseBody

将Java对象转为Json格式的数据。将Controller的方法返回对象通过适当的转换器转换为指定的格式之后写入到response对象的body区,通常返回Json数据或者XML数据。

(*注)使用该注解之后就不走视图处理器了,返回结果不会被解析为跳转路径,是直接将数据写入输入流中,等同于通过response对象输出指定格式的数据。比如异步获取Json数据,加上@ResponseBody注解后会直接返回Json数据。@ResponseBody将HTTP请求请求正文插入方法中,使用合适的HTTPMessageConverter将请求体写入某个对象。

用法:

作用在方法上,表示该方法的返回结果直接写进HTTP的response body中,一般在异步获取数据时使用。当方法上没有写@ResponseBody时,底层就会将方法的返回值封装为ModelAndView对象。

应用场景:

  • GET、POST方法提交时,根据request header Content-Type的值进行判断。
  • PUT方式提交时,根据request header Content-Type的值进行判断。

request body部分的数据编码格式由header部分的Content-Type来指定的。这是一个接口,由它的实现类完成转换。如果是Bean对象就会调用该对象的getXXX()方法获取属性值,然后以键值对的形式进行封装转化为Json。如果是Map集合,采用get(key)方法获取到value的值,进行封装。

@CrossOrgin

解决跨域问题,在需要跨域访问的方法或者类上添加该注解。

应用场景:

针对细粒度的跨域控制,例如一个Controller类中的methodA支持域名originA跨域访问,methodB支持originB跨域访问。

@Service

标注服务层的组件。

@Repository

标注数据访问层(DAO)的组件。

@Component

通用的组件标注,当一个类不属于明确的层次(如控制器、服务、数据访问层)时可以使用。

@Value

用于注入配置属性的值。

@EnableScheduling

开启定时任务功能。

@Scheduled

用于标注定时任务的方法。

相关推荐
952364 小时前
MyBatis
后端·spring·mybatis
FQNmxDG4S6 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
虹科网络安全7 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje8 小时前
Java语法进阶
java·开发语言·jvm
uzong8 小时前
9 种 RAG 架构,每位 AI 开发者必学:完整实战指南
后端
HackTorjan8 小时前
深度神经网络的反向传播与梯度优化原理
人工智能·spring boot·神经网络·机器学习·dnn
rKWP8gKv78 小时前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫8 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287928 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本8 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka