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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="constructor"> <bean id="autoWiringService" class="com.imooc.autowiring.AutoWiringService" ></bean> <bean class="com.imooc.autowiring.AutoWiringDAO" ></bean> </beans>
设置默认自动装配的方法default-autowire
如果是byName,就如同设置属性一样,只需要为需要注入的bean添加setter方法。
byType的时候,只需要类型一致就可以了。名字是无所谓的。
constructor 也是根据类型的。
被引用的类
package com.imooc.autowiring; public class AutoWiringDAO { public void say(String word) { System.out.println("AutoWiringDAO : " + word); } }
引用类
package com.imooc.autowiring; public class AutoWiringService { private AutoWiringDAO autoWiringDAO; // public AutoWiringService(AutoWiringDAO autoWiringDAO) { System.out.println("AutoWiringService"); this.autoWiringDAO = autoWiringDAO; } // 通过byName方式注入,设置了default-autowire // 在IOC容器中查找与autoWiringDAO完全一致的bean的id public void setAutoWiringDAO(AutoWiringDAO autoWiringDAO) { System.out.println("setAutoWiringDAO"); this.autoWiringDAO = autoWiringDAO; } public void say(String word) { this.autoWiringDAO.say(word); } }