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

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

相关推荐
SeaDhdhdhdhdh6 小时前
MCP Server 搭建与使用指南
java·ai·agent·mcp
YH55269846 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
AI_小站7 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
普通网友7 小时前
Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
spring boot·elasticsearch·jenkins
笃行3507 小时前
向量数据库单独建一套,这笔账划不划算
后端
许彰午7 小时前
03-三种开发模式
java·架构
涟漪海洋8 小时前
创建最新的JDK25镜像,非root环境启动
java
weixin_431600448 小时前
Agent Workflow 学习向:Code 节点,比模板更强的变量加工
后端·python·学习·ai·
Rain的Java大神之路8 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
孙克旭_9 小时前
Docker 镜像构建|Vue+SpringBoot+Go 多语言项目 Dockerfile 案例
linux·运维·vue.js·spring boot·docker·dockerfile