1.导入约束
<?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>
然后再实体类中添加注解@Autowired
public class People {
@Autowired
private Cat cat;
@Autowired
private Dog dog;
private String name;
基于注解的自动装配先在ioc容器中按照类型匹配进行查找,如果没找到,再按照id进行查找。如果查找不到就报错。Bytype -- Byname,如果有多个相同类型,则会在这个类型中按照id进行匹配。
所以即使bean对象的id和实体类中的属性名不一致也可以查找到。
使用Autowired我们可以不需要编写set方法,只要自动装配的属性在ioc容器中存在即可。
当环境很复杂,无法通过@Autowired实现自动装配时,可以配合@Qualifier来实现。
@Autowired
@Qualifier(value = "dog3")
private Dog dog;
private String name;
它会直接去找id = dog3 的bean对象。
也可以使用java自带的注解
@Resource
它一样可以实现自动装配,
@Resource
private Cat cat;
@Resource(name = "dog3")
resource先按id进行匹配再按照类型进行匹配也可以加括号进行唯一匹配