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