Spring基础注解

1,@RequestBody 、 @ResponseBody

1,Http请求和响应报文本质上都是一串字符串。
2,java将报文封装成I/O流,从流中读取以及写入原始字符。
3,HttpMessageConverter(消息转换器)提供了转换。
(read方法)请求报文-->@RequestBody注解的对象
(write方法)@ResponseBody注解对象-->响应报文
4,spring提供了请求报文的抽象,HttpInputMessage(Represents an HTTP input message,consisting of headers and a readable body)以及响应报文的抽象 HttpOutputMessage(Represents an HTTP output message, consisting of headers and a writable body)
5,RequestResponseBodyMethodProcessor,处理@RequestBody注解的方法参数以及@ResponseBody方法注解的返回值。
6,HttpInputMessage和可以从servlet标准的HttpServletRequest构造,HttpOutputMessage可以从HttpServletResponse构造。

image.png

1)Request消息结构

POST /course/jzcf3e875d82d147449f3271219c0ad4b0/modifyInfo HTTP/1.1 //请求行
Host: www.shequnke.com //请求头
Connection: keep-alive
//空行
type=3&price=0.02 //请求体

2)Response消息结构

HTTP/1.1 200 OK //响应行
Server: nginx//响应头
Date: Wed, 17 May 2017 18:15:17 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
//空行
{"uptoken":"123","success":true} //响应体

3)

使用@RequestBody,指定一个方法的参数绑定到一个web请求的body。
参数传递的时候,需要增加Content-type的请求头。
eg:设置 Header参数 Content-Type application/json

4)

Http协议中,如果不指定Content-Type,则默认传递的参数就是application/x-www-form-urlencoded类型
使用@RequestBody接受的参数是不会被Servlet转化统一放在request对象的Param参数集中,@RequestParam是可以的。

2,@bean @component

1)每个Spring Bean都有作用域,默认情况Spring应用上下文中的Bean都是单例对象,也就是说,无论给某个Bean被多少次装配给其他Bean,都是同一个实例,即Spring Bean默认的作用域为Singleton。
2)一个对象没有状态并且能够在应用中重复使用,就可以使用Singleton模式。
3)要对Bean的作用域进行配置,在使用@Component或@Bean标注的同时使用@Scope标注。

3,@Autowired和@Resource注解

1)@Autowired 根据bean 类型从spring 上线文中进行查找(当一类型有多个bean实例时,配合@Qualifier使用)
@Resource 允许通过bean 名称或bean 类型两种方式进行查找(name="",type="")。
2)@Autowired 标注作用于 Map 类型时,如果 Map 的 key 为 String 类型,Spring会将Value所有类型的Bean注入进来。key为bean的id或者name。
eg:

@Autowired
private Map<String, CollectWorker> collectWorkerMap0;//注入所有CollectWorker类型的对象。

3)@Autowired标注BeanFactory、ApplicationContext、ResourceLoader、ApplicationEventPublisher、MessageSource等,会自动注入这些实现类的实例。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容