Injection of Spring Beans

1. Set value injection

      1. Establish two classes, InjectionDaoImpl and InjectionServiceImpl, which are the implementation classes of the two interfaces, InjectionDao and InjectionService, respectively, and InjectionDAO is an attribute of InjectionServiceImpl

        

public class InjectionServiceImpl implements InjectionService{

	private InjectionDAO injectionDAO;
	
	// set injection
	public void setInjectionDAO(InjectionDAO injectionDAO) {
		this.injectionDAO = injectionDAO;
	}

	@Override
	public void save(String arg) {
		System.out.println("Service accepts parameters: " + 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>

 2. Construct injection

       1. The same as the above defines an imitation database operation with four classes

public class InjectionServiceImpl implements InjectionService{

	private InjectionDAO injectionDAO;
	
	//construction injection
	public InjectionServiceImpl(InjectionDAO injectionDAO){
		this.injectionDAO = injectionDAO;
	}

	@Override
	public void save(String arg) {
		System.out.println("Service accepts parameters: " + 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>

 

3. Test method

     

@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("Sorry, you are an idiot");
	}	

}

    

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326921229&siteId=291194637