@Qualifier 的value 属性用于指定要匹配的Bean 的id 值。类中无需set 方法,也可加到set 方法上。
举例:
@Autowired 还有一个属性required,默认值为true,表示当匹配失败后,会终止程序运行。若将其值设置为false,则匹配失败,将被忽略,未匹配的属性值为null。
JDK 注解@Resource 自动注入(掌握)
Spring 提供了对jdk 中@Resource 注解的支持。@Resource 注解既可以按名称匹配Bean,也可以按类型匹配Bean。默认是按名称注入。使用该注 解,要求JDK 必须是 6 及以上版本。@Resource 可在属性上,也可在set 方法上。
(1) byType 注入引用类型属性
@Resource 注解若不带任何参数,采用默认按名称的方式注入,按名称不能注入bean,则会按照类型进行Bean 的匹配注入。
举例:
(2) byName 注入引用类型属性
@Resource 注解指定其name 属性,则name 的值即为按照名称进行匹配的Bean 的id。
举例:
注解与 XML 的对比
注解优点是:
方便直观高效(代码少,没有配置文件的书写那么复杂)。
其弊端也显而易见:以硬编码的方式写入到Java 代码中,修改是需要重新编译代码的。
XML 方式优点是:
配置和代码是分离的在xml 中做修改,无需编译代码,只需重启服务器即可将新的配置加载。xml 的缺点是:编写麻烦,效率低,大型项目过于复杂。