Spring Bean的注入

一.设值注入

      1.建立InjectionDaoImpl和InjectionServiceImpl两个类分别为InjectionDao和InjectionService两个接口的实现类,且InjectionDAO为InjectionServiceImpl的一个属性

        

public class InjectionServiceImpl implements InjectionService{

	private InjectionDAO injectionDAO;
	
	//设置注入
	public void setInjectionDAO(InjectionDAO injectionDAO) {
		this.injectionDAO = injectionDAO;
	}

	@Override
	public void save(String arg) {
		System.out.println("Service 接受参数:" + arg);
		arg = arg + ":" + this.hashCode();
		injectionDAO.save(arg);
	}

}

  2.spring-injection.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" >
        
	<bean id="injectionService" class="main.com.pt.ioc.injection.service.InjectionServiceImpl">
		<property  name="injectionDAO" ref="injectionDAO"></property>	
	</bean>
	<bean id="injectionDAO" class="main.com.pt.ioc.injection.dao.InjectionDaoImpl"></bean>
	
 </beans>

 二.构造注入

       1.同上定义一个仿数据库操作有四个类

public class InjectionServiceImpl implements InjectionService{

	private InjectionDAO injectionDAO;
	
	//构造注入
	public InjectionServiceImpl(InjectionDAO injectionDAO){
		this.injectionDAO = injectionDAO;
	}

	@Override
	public void save(String arg) {
		System.out.println("Service 接受参数:" + arg);
		arg = arg + ":" + this.hashCode();
		injectionDAO.save(arg);
	}

}

 2.spring-injection.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" >
        
	<bean id="injectionService" class="main.com.pt.ioc.injection.service.InjectionServiceImpl">
		<constructor-arg name="injectionDAO" ref="injectionDAO"></constructor-arg>	
	</bean>
	<bean id="injectionDAO" class="main.com.pt.ioc.injection.dao.InjectionDaoImpl"></bean>
	
 </beans>

 

三.测试方法

     

@RunWith(BlockJUnit4ClassRunner.class)
public class TestInjection extends UnitTestBase{

	public TestInjection(){
		super("classpath*:spring-injection.xml");
	}
	
	@Test
	public void testSetter(){
		InjectionService service = super.getBean("injectionService");
		service.save("对不起,你是傻逼");
	}	

}

    

猜你喜欢

转载自270827204.iteye.com/blog/2297579