spring配置的主要标签有哪些
⑴ Spring注解之@Autowired、@Qualifier、@Resource、@Value
前言
在Spring框架中,@Autowired、@Qualifier、@Resource、@Value四个注解常用于数据注入,类似于在xml配置文件中使用bean标签中的property标签。
1、场景介绍
在使用@Autowired注解之前,我们先来看一个场景:在层、service层和controller层中,若没有正确注入AccountDao类,运行时会出现空指针异常。这是由于service层中的AccountDao属性未注入导致的。接下来,我们将使用@Autowired注解来解决这一问题。
2、@Autowired注解
Spring 2.5版本引入了@Autowired注解,用于自动装配类成员变量、方法、构造函数和参数。它主要应用于变量和方法,可以消除set和get方法,方便快捷。@Autowired注解的作用与在xml配置文件中的bean标签中使用property标签相同。
在Spring的IOC容器中,@Autowired注解会直接在容器中查找匹配的属性,与key无关。@Autowired自动装配的三种情况包括:1)容器中存在唯一匹配类型的bean对象;2)容器中不存在匹配类型的bean对象;3)容器中存在多个匹配类型的bean对象,则根据变量名进行注入。
3、@Qualifier注解
当容器中存在多个匹配类型的bean对象时,可以通过@Qualifier注解指定具体名称进行注入。@Qualifier注解通常与@Autowired一起使用,指明具体名称的自动装配。
4、@Resource注解
@Resource注解由J2EE提供,默认按照byName自动注入。它有两个重要属性:name和type,其中type属性通常不使用,因为它不如@Autowired灵活。@Resource注解主要用于通过名称自动注入。
5、@Autowired与@Resource的区别
这两个注解非常相似,主要区别在于提供者和自动装配方式。@Autowired由Spring提供,而@Resource由J2EE提供。@Resource相当于@Autowired + @Qualifier。
6、@Value注解
@Value注解用于注入基本类型和String类型的数据。它有一个value属性,用于指定数据值,支持Spring的SpEL表达式。
7、小结
以上四个注解都用于注入数据,其作用类似于在xml配置文件中使用bean标签中的property标签。