开发的项目最大的不同之处,SpringBoot 里面提供了大量的注解用于快速开发,而且非常简单,基本可以做到开箱即用!
针对此问题,小编特意对其进行了一番整理,内容如下,个人感觉还是比较清晰的,今天我们就一起来整一整每个注解的含义和用法,以免踩坑!
通常用于修饰controller层的组件,由控制器负责将用户发来的URL请求转发到对应的服务接口,通常还需要配合注解@RequestMapping使用。
提供路由信息,负责URL到Controller中具体函数的映射,当用于方法上时,可以指定请求协议,比如GET、POST、PUT、DELETE等等。
表示请求体的Content-Type必须为application/json格式的数据,接收到数据之后会自动将数据绑定到Java对象上去
和@Controller一样,用于标注控制层组件,不同的地方在于:它是@ResponseBody和@Controller的合集,也就是说,在当@RestController用在类上时,表示当前类里面所有对外暴露的接口方法,返回数据的格式都为application/json,示范代码如下:
用于接收请求参数为表单类型的数据,通常用在方法的参数前面,示范代码如下:
用于获取请求路径中的参数,通常用于restful风格的api上,示范代码如下:
用在方法上,表示只支持delete方式的请求,通常表示删除某些资源的意思
通常用于修饰service层的组件,声明一个对象,会将类对象实例化并注入到bean容器里面
泛指组件,当组件不好归类的时候,可以使用这个注解进行标注,功能类似于于@Service
@Repository注解属于Spring里面最先引入的一批注解,它用于将数据访问层 (DAO层 ) 的类标识为Spring Bean,具体只需将该注解标注在 DAO类上即可,示例代码如下:
主要是因为当我们配置服务启动自动扫描dao层包时,Spring会自动帮我们创建一个实现类,然后注入到bean容器里面。当某些类无法被扫描到时,我们可以显式的在数据持久类上标注@Repository注解,Spring会自动帮我们声明对象。
相当于 xml 中配置 Bean,意思是产生一个 bean 对象,并交给spring管理,示例代码如下:
自动导入依赖的bean对象,默认时按照byType方式导入对象,而且导入的对象必须存在,当需要导入的对象并不存在时,我们可以通过配置required = false来关闭强制验证。
也是自动导入依赖的bean对象,由JDK提供clash script模式,默认是按照byName方式导入依赖的对象;而@Autowired默认时按照byType方式导入对象,当然@Resource还可以配置成通过byType方式导入对象。
当有多个同一类型的bean时,使用@Autowired导入会报错clashofclanxbow,提示当前对象并不是唯一,Spring不知道导入哪个依赖,这个时候,我们可以使用@Qualifier进行更细粒度的控制,选择其中一个候选者,一般于@Autowired搭配使用clash script模式,,示例如下:
singleton:唯一 bean 实例,Spring 中的 bean 默认都是单例的。
prototype:每次请求都会创建一个新的 bean 实例,对象多例。
request:每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效clash script模式。
session:每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。clash script模式clashofclanxbow