Spring bean自动装配

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);
	}

}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部