自动装配指的是spring中的某个bean自动注入对应的依赖bean
自动寻找范围的是同一个上下文内(bean.xml),当然如果这个bean使用了improt标签,就可以联合其他xml文件
自动装配有两种方式:
1,在XML里配置,对应属性是autowire,只有两个value值,分别是byName,byType,
当一个类中的属性 包含其他类,就会在这个xml里上下文寻找对应类进行自动注入。
<bean id="people" class="com.hys.dao.people" autowire="byType">
<property name="name" value="易安"></property>
</bean>
<bean id="people" class="com.hys.dao.people" autowire="byName">
<property name="name" value="易安"></property>
</bean>
2,java程序配置,使用注解进行配置,使用注解之前需要现在配置文件里声明:下面代码红色部分,全部要添加上
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context ="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
<context:annotation-config/>
</beans>
对应的注解如下:
@Resource和@Autowired功能一致,都是回去bean中寻找对应类型或名字进行匹配,它们的作用相同都是用注解方式注入对象,但执行顺序不同。@Autowired先byType,@Resource先byName。
@Qualifier 不能单独使用,可以和@Autowired配合,可以指定对应bean的id
@Autowired可以带参数,required=flase表示可以为空
@Nullable表示这个参数可以为空,可以不需要。
public class people {
@Autowired(required = false)
@Qualifier(value = "cat2")
private String name;
@Resource
private Dog dog;
@Autowired
private CAT cat;
}