Bean的自动装配(Autowiring)
四种类型: 1.No:不做任何操作 2.byname:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配 3.byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个该类型的bean,那么抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生 4.Constructor:与byType方式类似,不同之处在于它应用于构造器参数。如果容器中没有找到与构造器参数类型一致的bean,那么抛出异常 Bean的自动装配:在beans标签配置属性 default-autowire="no/byName/byType/constructor" 作用为:省去了在Spring的xml中配置property标签和constructor-arg标签,只需要配置bean标签即可 PS:byName和byType为设值注入,constructor为构造注入; byName要求bean标签的id属性需要和成员变量的名称一致, byType和constructor则跟id无关
xml示例:
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" default-autowire="constructor"> <!-- default-autowire="byName" --> <bean id="autoWiringService" class="com.daley.springprac.prac1.autowiring.AutoWiringService" /> <bean id="autoWiringDAO" class="com.daley.springprac.prac1.autowiring.AutoWiringDAO" /> </beans>
演示项目地址:https://github.com/DaleyChao/SpringPractice/commit/de3a447e668236aebd0fcddb1a2272310d58c3e2
时间: 2024-09-20 00:49:02