大数据平台技术笔记

SpringBoot应用开发常用注解

2022-02-25  本文已影响0人  OkGogogooo

1 SpringBoot 注解

  1. @SpringBootApplication
    用在 Spring Boot 的主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。实际上这个注解是@Configuration、 @EnableAutoConfiguration、@ComponentScan 三个注解的组合。由于这些注解 一般都是一起使用,所以 Spring Boot 提供了一个统一的注解 @SpringBootApplication。
  2. @Configuration
    用在程序中起配置作用的类上。从 Spring3.0,@Configuration 用于定义 配置类,可替换 xml 配置文件,被注解的类内部包含有一个或多个被@Bean 注 解的方法,这些方法将会被 AnnotationConfigApplicationContext 或 AnnotationConfigWebApplicationContext 类进行扫描,并用于构建 bean 定 义,初始化 Spring 容器。
  3. @Bean
    用在方法上,意思是产生一个 bean,并交给 spring 管理。这个一般用在带 有@SpringBootApplication 注解或者带有@Configuration 注解的类的方法上。
  4. @Autowired
    它可以用在构造函数、方法、参数,类的成员变量(最常见)、注解上。 用来完成对参数和变量的自动装配,即置入 bean。
  5. @Qualifier
    @Qualifier 与@Autowired 一起使用,当用@Autowired 自动装配的地方,存 在某一类型有多个 bean 的时候,需要联合使用@Qualifier,来精确指明用的是 哪一个 bean。
  6. @Resource(来自 J2EE)
    @Resource 的作用相当于@Autowired,只不过@Autowired 按 byType 自动注 入,而@Resource 默认按 byName 自动注入。@Resource 有两个属性是比较重要 的,分别是 name 和 type,Spring 将@Resource 注解的 name 属性解析为 bean 的名字,而 type 属性则解析为 bean 的类型。所以如果使用 name 属性,则使用 byName 的自动注入策略,而使用 type 属性时则使用 byType 自动注入策略。如 果既不指定 name 也不指定 type 属性,这时将通过反射机制使用 byName 自动注 入策略。
  7. @PropertySource
    @PropertySource 注解用在配置定义类上,用来将一个 properties 文件加 载成一个 Bean。它需要和@Component(或包含它的组合注解)联合使用。它的 value 值格式可以是:“classpath:路径”、“file:路径”。
  8. @Value
    @Value 可以和@PropertyResource 一起使用,实现注入配置文件中的指定 键的数据。它也可以单独使用,实现非配置文件中的数据置入到某个成员变 量。可实现以下功能:
  1. @Component
    @Component 用在类上,表明这是一个组件类,Spring 会构造一个这个类的 bean,并管理和装配它。
  2. @Service 用在类上,注册为一个 bean。
  3. @RestController
    @RestController 是包含了@Controller 和@ResponseBody 的组合注解,用 作微服务接口类的专用注解。
    在 SpringMVC 中,控制器 Controller 负责处理由 DispatcherServlet 分发 的请求,它把用户请求的数据经过业务处理层处理之后封装成一个 Model,然 后再把该 Model 返回给对应的 View 进行展示。
    @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该 方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制 器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。
  4. @RequestMapping
    可以使用@RequestMapping 来映射 URL 到控制器类,或者是到
    Controller 控制器的处理方法上。当@RequestMapping 标记在
    Controller 类上的时候,里面使用@RequestMapping 标记的方法的请求地址 都是相对于类上的@RequestMapping 而言的;当Controller 类上没有标记
    @RequestMapping 注解时,方法上的@RequestMapping 都是绝对路径。这种 绝对路径和相对路径所组合成的最终路径都是相对于根路径“/”而言的。
  5. @GetMapping
    @GetMapping 是一个用在方法上的组合注解,是 @RequestMapping(method=RequestMethod.GET)的缩写。Spring Boot 框架将 HTTP GET 请求匹配到声明有该注解的方法。
  6. @PostMapping
    @PostMapping 是一个用在方法上的组合注解,是 @RequestMapping(method=RequestMethod.POST)的缩写。Spring Boot 框架将 HTTP POST 请求匹配到声明有该注解的方法。
  7. @DeleteMapping
    @DeleteMapping 是一个用在方法上的组合注解,是 @RequestMapping(method=RequestMethod.DELETE)的缩写。Spring Boot 框架 将 HTTP DELETE 请求匹配到声明有该注解的方法。
  8. @PatchMapping
    @PatchMapping 是一个用在方法上的组合注解,是 @RequestMapping(method=RequestMethod.PATCH)的缩写。Spring Boot 框架将 HTTP PATCH 请求匹配到声明有该注解的方法。
  9. @PutMapping
    @PutMapping 是一个用在方法上的组合注解,是 @RequestMapping(method=RequestMethod.PUT)的缩写。Spring Boot 框架将 HTTP PUT 请求匹配到声明有该注解的方法。
  10. @RequestParam
    @RequestParam 用来标注一个 query 传参的参数。
  11. @PathVariable
    @PathVariable 用来标注一个 path 传参的参数。
  12. @RequestBody
    用@RequestBody注解标注的参数,Spring Boot框架将把HttpRequest请 求体映射给它。如果 HttpRequest 的 Content-Type 是 JSON 格式的,那么框架 还支持将它转为 JSON 对象或者 POJO 对象。

2 Swagger 注解

  1. @Api
    @Api 注解用在有@RestController 类标注的类上,表明该类有 API 接口, 需要生成 API 文档。
  2. @ApiOperation
    @ApiOperation 注解用在方法上,表明这是一个 API 接口,并在其中说明这 个 API 的功能和作用,做关于这个 API 的总体性说明。
  3. @ApiImplicitParams
    @ApiImplicitParams 注解用在方法上,当一个 API 有多个参数时,就需要 用@ApiImplicitParams 包裹多个@ApiImplicitParam 参数描述。
  4. @ApiImplicitParam
    描述 API 的一个参数,说明它的类型,是否必需,描述说明,可选值等。
    @RequestBody 的参数值来自HttpRequest的请求体,没有参数名,可以通过指定@ApiImplicitParam的paramType="body"来说明这是关于@RequestBody参数的描述。
  5. @ApiParam
    @ApiParam 注解可以用在方法或者参数上。功能和@ApiImplicitParam 类 似,但一般把它用在有@RequestBody 注解的参数上,用来描述这个参数。
上一篇下一篇

猜你喜欢

热点阅读