springboot 用到的一些常用注解

一:辅助性注解

在spring boot 框架下@Autowired,@Override

作用都是被框架管理自动生成对象

@Autowired 注解。这个注解的功能就是为我们注入一个定义好的 bean。

首先,我们从所属范围来看,事实上这个注解是属于 Spring 的容器配置的一个注解,与它同属容器配置的注解还有:@Required,@Primary, @Qualifier 等等。因此 @Autowired 注解是一个用于容器 ( container ) 配置的注解。

应用最多:将 @Autowired 注解添加到需要该类型数组的字段或方法,则 Spring 会从 ApplicationContext 中搜寻符合指定类型的所有 bean,

 @Autowired 注解应用于构造函数; 注解应用于 setter 方法  注解应用于具有任意名称和多个参数的方法;应用于字段,或者将其与构造函数混合

@Override 也可以用来注入bean 主要功能是进行一个检测判断

加了此注解的方法,表示此方法是一个覆写的方法,如果不满足覆写会报错。

在日常的编程中,一般出现在ServiceImpl实现类的方法上。java在进行接口实现的时候,要实现接口中定义的所有方法,也就是通过实现类重写方法。加上此注解,会帮助我们检测方法重写的正确性,例如:方法名是否与接口中一致(也就是是否可以在接口中找到次方法定义),方法的引用参数是否正确等等

@Service()

此注注解属于业务逻辑层,service或者manager层

默认按照名称进行装配,如果名称可以通过name属性指定,如果没有name属性,注解写在字段上时,默认去字段名进行查找,如果注解写在setter方法上,默认按照方法属性名称进行装配。当找不到匹配的bean时,才按照类型进行装配,如果name名称一旦指定就会按照名称进行装配

RestController = @Controller + @ResponseBody组成,

  • @Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。当然也有语义化的作用,即代表该类是充当Controller的作用
  • @ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端

@ApiVersion

是用来声明当前的版本号 可以和服务器地址等一些配置进行关联 方便进行线上访问

二:启动类注解

@SpringBootApplication

标注这个类是属于SpringBoot的启动类,从源代码中可以获悉,这个注解被@Configuration、@EnableAutoConfiguration、@ComponentScan 注解所修饰,换言之 Springboot 提供了统一的注解来替代以上三个注解。

@MapperScan

上面的那个注解是用来标注扫描dao范围的,这里如果你使用的MyBatis的话,需要通过配置文件来指定Mapper和主要的配置文件的位置, mybaitsplus 不需要这个注解

三:传参类注解

@ PathVariable 主要作用:映射URL绑定的占位符 带占位符的URL是 Spring3.0 新增的功能,URL中的 {xxx} 占位符可以通过 @ PathVariable ("xxx") 绑定到操作方法的入参中

@PathVariable与@RequestParam的区别

  1. 相同点

A. 作用位置相同:都是直接修饰方法参数变量;

B. 功能相似:都是将URL中的变量值映射到方法参数上;

C. 都具有value属性:将URL变量名与方法参数名映射起来;

2) 不同点

A. 对应的URL不同

@PathVariable对应的URL是REST风格,具有占位符{XXX},即URL模板;如/{id}/{name}

@RequestParam对应的URL是传统URL,key=value形式,如?id=1&name=zhaohong

B. 设置默认值

@RequestParam可以通过defaultValue属性设置默认值,而@PathVariable不可以。

C. 是否必需

@RequestParam可以通过required属性设置是否必需,默认为true;而@PathVariable一定是必需的

@RequestParam

A) 常用来处理简单类型的绑定,通过Request.getParameter() 获取的String可直接转换为简单类型的情况( String--> 简单类型的转换操作由ConversionService配置的转换器来完成);因为使用request.getParameter()方式获取参数,所以可以处理get 方式中queryString的值,也可以处理post方式中 body data的值;

B)用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容,提交方式GET、POST;

C) 该注解有两个属性: value、required; value用来指定要传入值的id名称,required用来指示参数是否必须绑定;

@RequestBody

@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交.

在后端的同一个接收方法里,@RequestBody 与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

注:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam

注:当同时使用@RequestParam()和@RequestBody时,@RequestParam()指定的参数可以是普通元素、数组、集合、对象等等(即:当,@RequestBody 与@RequestParam()可以同时使用时,原SpringMVC接收参数的机制不变,只不过RequestBody 接收的是请求体里面的数据;而RequestParam接收的是key-value里面的参数,所以它会被切面进行处理从而可以用普通元素、数组、集合、对象等接收)。

即:如果参数时放在请求体中,传入后台的话,那么后台要用@RequestBody才能接收到;如果不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam()来接收,或则形参前什么也不写也能接收。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值