本文共 1799 字,大约阅读时间需要 5 分钟。
自动装配是Spring框架用于满足JavaBean依赖的强大功能之一。Spring容器会自动查找并注入与当前Bean关联的其他Bean属性,从而简化依赖管理。在Spring中,实现自动装配的方式主要有两种:通过XML文件和通过注解。
在早期版本的Spring中,我们需要手动配置Bean及其依赖关系。以下是一个典型的例子:
这样,People bean的cat和dog属性会被手动注入。然而,这种方式存在灵活性不足的问题,且操作复杂。
为了实现自动装配,可以在Bean的配置中设置autowire
属性:
这种方式是通过属性名进行自动注入。Spring会根据属性名(去掉首字母并转成小写)来查找对应的Bean。例如:
< bean id="people" class="People" autowire="byName"> < property name="name" value="周杰伦" /> < property name="age" value="18" />
通过类型进行自动注入。此方式需要确保同一类型的Bean在容器中是唯一的。例如:
< bean id="people" class="People" autowire="byType"> < property name="name" value="周杰伦" /> < property name="age" value="18" />
注意:通过byType方式时,若同一个类的Bean不唯一,会抛出“单一和唯一”的错误。
使用注解法可以显著简化配置。在People类中添加反转义:
public class People { private String name; private int age; private Cat cat; private Dog dog; @Autowired public void setCat(Cat cat) { this.cat = cat; } @Autowired public void setDog(Dog dog) { this.dog = dog; }}
@Autowired:
@Qualifier:
@Resource:
@Autowired和@Resource的区别:
public class Cat { private String name; public void setName(String name) { this.name = name; } public void shout() { System.out.println("猫叫喵喵喵~"); }}
确保Cat bean在容器中存在,并通过注解注入。
转载地址:http://ueayk.baihongyu.com/