赞
踩
@RestController=@COntroller+ @ReSponsebody。
@Controller:控制器(注入服务):用于标注控制层,控制后台和前段
@Service:服务层(注入dao)用于标注数据访问层,
@Repository(实现dao访问)
@Component(吧普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class="">)
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller,@Service等的时候),我们就可以使用@Component来标注这个类
----------------------------------------------------------------------------------------------------------------------
@RequestMapping
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值,才能让该方法处理请求。
----------------------------------------------------------------------------------------------------------------------
@RequestMapping,@GetMapping、@PostMapping、@PutMapping、@DeleteMapping联系区别
Spring4.3中引进了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},来帮助简化常用的HTTP方法的映射,并更好地表达被注解方法的语义。
@RequestMapping如果没有指定请求方式,将接收Get,Post,Head,Options等所有的请求方式
@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。
@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。
@DeleteMapping是一个组合注解是@RequestMapping(method = RequestMethod.POST)的缩写。
--------------------------------------------------------------------------------------------------------------------
@Resource和@Autowired的区别
@Resource默认按照名称方式进行bean匹配,@Autowired默认按照类型方式进行bean匹配
@Resource(import javax.annotation.Resource;)是J2EE的注解,@Autowired( import org.springframework.beans.factory.annotation.Autowired;)是Spring的注解
Spring属于第三方的,J2EE是Java自己的东西。使用@Resource可以减少代码和Spring之间的耦合。
------------------------------------------------------------------------------------------------------------------------
@RequestParam
用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容。(Http协议中,如果不指定Content-Type,则默认传递的参数就是application/x-www-form-urlencoded类型)
RequestParam可以接受简单类型的属性,也可以接受对象类型。
实质是将Request.getParameter() 中的Key-Value参数Map利用spring的转化机制ConversionService配置,转化成参数接收对象或字段。
tip
在Content-Type: application/x-www-form-urlencoded的请求中,
get 方式中queryString的值,和post方式中 body data的值都会被Servlet接受到并转化到Request.getParameter()参数集中,所以@RequestParam可以获取的到。
@RequestBody
处理HttpEntity传递过来的数据,一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据。
总结
举个例子,在SpringMVC配置了HttpMessageConverters处理栈中,指定json转化的格式,如Date转成‘yyyy-MM-dd’,则参数接收对象包含的字段如果是Date类型,就只能让客户端传递年月日的格式,不能传时分秒。因为不同的接口,它的参数可能对时间参数有不同的格式要求,所以这样做会让客户端调用同事对参数的格式有点困惑,所以说扩展性不高。
如果使用@RequestParam来接受参数,可以在接受参数的model中设置@DateFormat指定所需要接受时间参数的格式。
另外,使用@RequestBody接受的参数是不会被Servlet转化统一放在request对象的Param参数集中,@RequestParam是可以的。
综上所述,一般情况下,推荐使用@RequestParam注解来接受Http请求参数。
--------------------------------------------------------------------------------------------------------------------
@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中
@Configuration 这是一个配置类
@ConditionalOnClass
其用途是判断当前classpath下是否存在指定类,若是则将当前的配置装载入spring容器。
以上文章为一些网上的常用整理,自己还是小菜,自觉有侵权行为,大佬们如果不允许,请联系我,立即删除,谢谢
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。