测试代码:
package com.yanek.ioc; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.BlockJUnit4ClassRunner; import com.yanek.util.UnitTestBase; @RunWith(BlockJUnit4ClassRunner.class) public class TestIOC extends UnitTestBase { public TestIOC() { super("classpath*:spring-ioc.xml"); } @Test public void testSay1() { OneInterface oneInterface = super.getBean("oneInterface"); oneInterface.say("This is a test1."); } @Test public void testSay2() { OneInterface oneInterface = super.getBean("oneInterface"); oneInterface.say("This is a test2."); } }
相关类和配置文件
package com.yanek.util; import org.junit.After; import org.junit.Before; import org.springframework.beans.BeansException; import org.springframework.context.support.ClassPathXmlApplicationContext; public class UnitTestBase { private ClassPathXmlApplicationContext context; private String springXmlpath; public UnitTestBase() {} public UnitTestBase(String springXmlpath) { this.springXmlpath = springXmlpath; } @Before public void before() { if ((springXmlpath!=null && !springXmlpath.equals(""))) { springXmlpath = "classpath*:spring-*.xml"; } try { context = new ClassPathXmlApplicationContext(springXmlpath.split("[,\\s]+")); context.start(); } catch (BeansException e) { e.printStackTrace(); } } @After public void after() { context.destroy(); } @SuppressWarnings("unchecked") protected <T extends Object> T getBean(String beanId) { try { return (T)context.getBean(beanId); } catch (BeansException e) { e.printStackTrace(); return null; } } protected <T extends Object> T getBean(Class<T> clazz) { try { return context.getBean(clazz); } catch (BeansException e) { e.printStackTrace(); return null; } } }
package com.yanek.ioc; public interface OneInterface { public void say(String arg); } package com.yanek.ioc; public class OneInterfaceImpl implements OneInterface { public void say(String arg) { System.out.println("ServiceImpl say: " + arg); } }
spring配置文件
<?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="oneInterface" class="com.yanek.ioc.OneInterfaceImpl"></bean> </beans>
时间: 2024-10-22 13:49:55