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