Spring Boot 常用注解汇总

本文详细介绍了Spring Boot中常用注解的用法,包括启动注解@SpringBootApplication,配置文件相关注解@Configuration、@ComponentScan,Controller相关注解如@RestController、@RequestMapping,取请求参数值的注解如@PathVariable、@RequestParam,注入Bean的注解如@Bean、@Component,导入配置文件的注解@PropertySource和@ImportResource,以及事务管理注解@Transactional和全局异常处理注解@ControllerAdvice、@ExceptionHandler。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、启动注解@SpringBootApplication

SpringBoot最核心的注解,用于SpringBoot的主类,标识这是一个 SpringBoot 应用,用来开启 Spring Boot 的各项能力。

@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan三个注解的组合。由于这些注解一般一起使用,所以干脆整合成了一个统一的注解@SpringBootApplication。

@SpringBootConfiguration 注解

继承@Configuration注解,主要用于加载配置文件,二者功能致,标注当前类为配置类, 将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,且实例名为方法名。


@EnableAutoConfiguration 注解

开启自动配置功能,帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。智能的自动配置功效借助于Spring框架原有的一个工具类:SpringFactoriesLoader的支持。


@ComponentScan 注解

主要用于组件扫描自动装配,自动扫描并加载符合条件的组件或bean定义,最终将这些bean定义加载到容器中。可以通过basePackages等属性指定@ComponentScan自动扫描的范围,若不指定,则Spring框架实现默认从声明@ComponentScan所在类的package进行扫描,SpringBoot的启动类最好放在root package下。


二、配置文件相关注解

@Configuration

用于定义配置类,指出该类是 Bean 配置的信息源,相当于传统的xml配置文件,一般加在主类上。如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。


@ComponentScan

组件扫描。让spring Boot扫描到Configuration类并把它加入到程序上下文。

@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中。


三、Controller 相关注解

@Controller

控制器,处理http请求。后面[注入bean相关注解]会细说


@RestController 复合注解

@RestController注解= @ResponseBody+@Controller,效果是将方法返回的对象直接在浏览器上展示成json格式。


@RequestBody

通过HttpMessageConverter读取Request Body并反序列化为Object(泛指)对象

@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参是POST请求,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。


@ResponseBody

  • @ResponseBody这个注解通常使用在控制层(controller)的方法上,其作用是将方法的返回值以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。

  • 字符串则直接将字符串写到客户端。

  • 是一个对象,此时会将对象转化为json串然后写到客户端。这里需要注意的是,如果返回对象,按utf-8编码。如果返回String,默认按iso8859-1编码,页面可能出现乱码。因此在注解中我们可以手动修改编码格式,比如@RequestMapping(value=“/cat/query”,produces=“text/html;charset=utf-8”),前面是请求的路径,后面是编码格式。

  • 转化为json格式的字符串是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。如果是bean对象,会调用对象的getXX

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值