1.Spring bean @Required注解作用详解

2.@Qualifier:该注解和@Autowired注解搭配使用,用于消除特定bean自动装配的歧义

3.@Autowired与@Resource的区别
①@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。
②@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
spring中常见的一些注解_java学习
@Resource(这个注解属于J2EE的),默认安照名称进行装配,名称可以通过name属性进行指定,
如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
spring中常见的一些注解_java学习_02
4.@RequestParam
GET和POST请求传的参数会自动转换赋值到@RequestParam 所注解的变量上
spring中常见的一些注解_java学习_03
5.@ModelAttribute
@ModelAttribute注解类型将参数绑定到Model对象
spring中常见的一些注解_java学习_04
6.@RequestParam、@RequestBody和@ModelAttribute区别?

当前台界面使用GET或POST方式提交数据时,数据编码格式由请求头的ContentType指定。分为以下几种情况:

  1. application/x-www-form-urlencoded,这种情况的数据@RequestParam、@ModelAttribute可以处理,@RequestBody也可以处理。
  2. multipart/form-data,@RequestBody不能处理这种格式的数据。(form表单里面有文件上传时,必须要指定enctype属性值为multipart/form-data,意思是以二进制流的形式传输文件。)
  3. application/json、application/xml等格式的数据,必须使用@RequestBody来处理。

7.@bean注解的使用
spring中常见的一些注解_java学习_05
spring中常见的一些注解_java学习_06
我们都知道spring容器里的bean有生命周期,有初始化int()方法,也有销毁的destroy()方法,这都是bean的生命周期方法
spring中常见的一些注解_java学习_07
默认使用javaConfig配置的bean,如果存在close或者shutdown方法,则在bean销毁时会自动执行该方法,如果你不想执行该方法,则添加@Bean(destroyMethod="")来防止出发销毁方法(解释:通过destroyMethod属性指定具体的销毁方法是哪一个,如果destroyMethod="",则说明是空,没有销毁回调方法)