@Autowired注解介绍
@Autowired的属性required
作用
Autowired 注入数据的过程:
* 1.先根据类型注入数据
* 如果找不到就会报错,报错信息:No qualifying bean of type 'java.lang.String' available: expected at least 1 bean which qualifies as autowire candidate
* 如果找到唯一的1个就会直接注入
* 2.如果找到多个符合的类型,会再根据成员字段名字查找注入唯一的1个数据
* 如果名字不符合就会报错,报错信息:No qualifying bean of type 'java.lang.String' available: expected single matching bean but found 2: str1,str2
* 如果名字符合就会直接注入,但是必须符合的只有1个
*
* 使用方式
* 方式1: @Autowired 先根据类型查找,类型匹配找到多个,再根据字段名注入
* 方式2: @Autowired(required = false) 找到就注入,找不到就不注入,默认值为null
* 注意:根据类型一个都找不到,才会设置默认为null
@Qualifier注解
@Resource
介绍: jdk提供的注解,但是jdk9及以后版本就淘汰了,不推荐使用
作用: spring框架在@Resource注解至上键增加了功能,实现注入数据
@Value
作用:用于设置默认值,从IOC容器中获取、配置文件中获取、直接赋值、执行SpringEL
格式1:直接赋值 @Value("丫蛋") 功能与直接给字段赋值一样,例如:name="丫蛋"
格式2:使用springEL表达式 @Value("#{T(java.lang.Math).PI}")
格式3:配置文件jdbc.properties中有:jdbc.url=xxxxx
@Value("${jdbc.url}")
bean生命周期有关的注解