帮你梳理springboot所有常用注解

本文详细介绍了Spring Boot中常见的注解,包括Spring MVC注解如@RestController、@RequestMapping,Spring Bean注解如@ComponentScan、@Autowired,以及Spring Boot特有的@SpringBootApplication等。通过这些注解,可以更好地理解和使用Spring Boot进行开发。

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

1.springmvc注解

1. @RestController、@ResponseBody、@Controller

@Controller是@Component注解的一个延伸,Spring会自动扫描并配置被该注解标注的类,是一个controller层必需的注解。@ResponseBody会自动将控制器中方法的返回值写入到HTTP响应中,更实际的说@ResponseBody的作用其实是将java对象转为json格式的数据,不再走视图解析器,直接返回到response对象中

@RestController相当于@Controller和@ResponseBody,最常使用,上面两个就基本用不到了。

2. @RequestMapping、@GetMapping、@PostMapping

@RequestMapping注解的主要用途是将Web请求与请求处理类中的方法进行映射,可以注解在类或方法上。
拥有6个配置属性:

  • value:映射的请求URL或者其别名
  • method:兼容HTTP的方法名
  • params:根据HTTP参数的存在、缺省或值对请求进行过滤
  • headers:根据HTTP Header的存在、缺省或值对请求进行过滤
  • consumes:设定在HTTP请求正文中允许使用的媒体类型
  • products:在HTTP响应体中允许使用的媒体类型

@GetMapping和@PostMapping是省略method的写法,推荐使用。
例:

@RestController
@RequestMapping("/person")
public class UserController {
   

    @RequestMapping(value = "/query", method = RequestMethod.GET)
    public String query(){
   
        return "11";
    }

    @GetMapping(value = "/query")
    public String getUser(){
   
        return "11";
    }

    @PostMapping(value = "/add")
    public String addUser(){
   
        return "11";
    }

}

3.@RequestBody、@PathVariable、@RequestParam

@RequestBody它将方法参数绑定到web请求对象的body中(基本是用于post请求),请求的body参数是通过HttpMessageConverter解析,根据请求主体中的参数名与对象的属性名进行匹配并绑定值。此外,还可以通过@Valid注解对请求主体中的参数进行校验。下面是一个使用@RequestBody的示例:

@RestController
@Validated
public class UserController {
   

    @PostMapping(value = "/add")
    public BaseResponse addUser(@Validated @RequestBody UserAddDto addDto) {
   

        return new BaseResponse<>();
    }
}

@PathVariable注解是将方法中的参数绑定到请求URI中的模板变量上,模板变量名需要使用“{ }”进行包裹,如果方法的参数名与URI模板变量名一致,则在@PathVariable中就可以省略别名的定义。

@RequestParam注解用于将方法的参数与Web请求的传递的参数进行绑定,特别的get方式的请求中,可以用一个dto对象来接收参数,前面不加@RequestParam即可。

 	@GetMapping(value = "/query/{id}")
    public BaseResponse
### Spring Boot 2 中常用注解及用途 #### @SpringBootApplication 注解 `@SpringBootApplication` 是 `@SpringBootConfiguration`、`@EnableAutoConfiguration` 和 `@ComponentScan` 三个注解的组合。这个注解简化了应用程序入口类的定义,使得开发者不需要单独声明这三个基础注解即可完成大部分配置工作[^1]。 ```java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### @SpringBootConfiguration 注解注解继承自 `@Configuration`,用于标记当前 Java 类作为配置类,在此类中可以使用 `@Bean` 来注册各种组件到 IoC 容器内。它主要用于加载配置文件以及初始化必要的环境设置[^2]。 #### @EnableAutoConfiguration 注解注解允许 Spring Boot 自动配置机制生效,即根据项目依赖关系自动推断并应用合适的默认配置选项。这大大减少了手动编写繁琐 XML 或者 Java 配置的工作量,提高了开发效率。 #### @ComponentScan 注解 通过指定 basePackages 属性来控制扫描哪些包下的组件,默认情况下会从标注有本注解所在的类所在位置开始向下递归扫描所有子包内的候选组件,并将其纳入 Spring 应用程序上下文中进行管理[^3]。 除了上述核心注解外,还有一些其他重要的注解也经常被用来增强功能: - **@RestController**:用于构建 RESTful Web Services 的控制器层接口实现; - **@Service**:通常应用于业务逻辑处理的服务层组件上; - **@Repository**:标识数据访问对象 DAO 组件,负责持久化操作; - **@ControllerAdvice**:全局异常处理器,可用于集中捕获和响应整个应用程序范围内的未处理异常情况; - **@Scheduled**:支持定时任务调度的功能,可以通过简单的方法级编程方式安排周期性的后台作业执行计划。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值