admin管理员组文章数量:1794759
SpringBoot 学习系列
前言
本篇文章主要介绍SpringBoot 相关注解类,SpringBoot本身是基于Spring家族体系搭建的一套快速开发框架。因此很多注解都基于原先Spring家族相关注解。
常用注解介绍
@SpringBootApplication
此为启动注解,也为组合注解。由@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan注解,组合而成。
@SpringBootConfiguration
继承至@Configuration,对于熟悉spring的开发者而言,此标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。 @EnableAutoConfiguration
这个注解就是springboot能自动进行配置的魔法所在了。主要是通过此注解,能所有符合自动配置条件的bean的定义加载到spring容器中,比如根据spring-boot-starter-web ,来判断你的项目是否需要添加了webmvc和tomcat,就会自动的帮你配置web项目中所需要的默认配置。具体的使用,会在后期自定义实现一个自动启动类时,会讲解到它的一些机制。此章节就不深入了,只需要它是这个用途即可,一般上也单独使用不要这个注解,但比如需要排除一些无需自动配置的类时,可利用exclude进行排除。 @ComponentScan
这个熟悉spring的开发者也应该熟悉,会扫描当前包及其子包下被@Component,@Controller,@Service,@Repository等注解标记的类并纳入到spring容器中进行管理。
@Repository 用于标注数据访问组件,即DAO组件。
@Service 用于标注业务层组件。
@RestController 是Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。而@Controller是用来创建处理http请求的对象,一般结合@RequestMapping使用。
@RequestBody
@RequestBody注解允许request的参数在reqeust体中,常常结合前端POST请求,进行前后端交互。
@ResponseBody @ResponseBody注解支持将的参数在reqeust体中,通常返回json格式给前端。
@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@RequestMapping
一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
(1)value, method value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明); method: 指定请求的method类型, GET、POST、PUT、DELETE等; (2)consumes,produces consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html; produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回; (3) params,headers params: 指定request中必须包含某些参数值是,才让该方法处理。 headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
常用的基本上就value和method了。其简化注解有
@GetMapping 等同于 @RequestMapping(method = RequestMethod.GET) @PostMapping 等同于 @RequestMapping(method = RequestMethod.POST) @PutMapping 等同于 @RequestMapping(method = RequestMethod.PUT) @DeleteMapping 等同于 @RequestMapping(method = RequestMethod.DELETE) @PatchMapping 等同于 @RequestMapping(method = RequestMethod.PATCH)
@Configuration 指出该类是 Bean 配置的信源,相当于XML中的<beans></beans>,一般加在主类上。
@Bean 相当于XML中的<bean></bean>,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理,名称为方法名。
@AutoWired byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 当加上(required=false)时,就算找不到bean也不报错。
@Qualifier 当有多个同一类型的Bean时,可以用@Qualifier("name")来指定。与@Autowired配合使用
@RequestAttribute
用于访问由过滤器或拦截器创建的、预先存在的请求属性,效果等同与request.getAttrbute().
@PathVariable:
路径变量。参数与大括号里的名字一样要相同。
RequestMapping("user/get/mac/{macAddress}") public String getByMacAddress(@PathVariable String macAddress){ //do something; }@Profiles Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。
@Configuration @Profile("prod") public class ProductionConfiguration { // ... }@ConfigurationProperties Spring Boot将尝试校验外部的配置,默认使用JSR-303(如果在classpath路径中)。你可以轻松的为你的@ConfigurationProperties类添加JSR-303 javax.validation约束注解:
@Component @ConfigurationProperties(prefix="connection") public class ConnectionSettings { @NotNull private InetAddress remoteAddress; // ... getters and setters }@ControllerAdvice 包含@Component。可以被扫描到。统一处理异常。
@ExceptionHandler(Exception.class) 用在方法上面表示遇到这个异常就执行以下方法。
结语大部分注解说明摘自网络,作出整理。
本文标签: 系列SpringBoot
版权声明:本文标题:SpringBoot 学习系列 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686807927a105484.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论