本例演示spring的基础配置和 并且用 junit4 测试
需要的包,web项目需要把包放在 web-inf的lib目录下
commons-logging-1.1.jar
junit-4.10.jar
spring-aop-4.0.5.RELEASE.jar
spring-aspects-4.0.5.RELEASE.jar
spring-beans-4.0.5.RELEASE.jar
spring-context-4.0.5.RELEASE.jar
spring-context-support-4.0.5.RELEASE.jar
spring-core-4.0.5.RELEASE.jar
spring-expression-4.0.5.RELEASE.jar
spring-framework-bom-4.0.5.RELEASE.jar
spring-instrument-4.0.5.RELEASE.jar
spring-instrument-tomcat-4.0.5.RELEASE.jar
spring-jdbc-4.0.5.RELEASE.jar
spring-jms-4.0.5.RELEASE.jar
spring-messaging-4.0.5.RELEASE.jar
spring-orm-4.0.5.RELEASE.jar
spring-oxm-4.0.5.RELEASE.jar
spring-test-4.0.5.RELEASE.jar
spring-tx-4.0.5.RELEASE.jar
spring-web-4.0.5.RELEASE.jar
spring-webmvc-4.0.5.RELEASE.jar
spring-webmvc-portlet-4.0.5.RELEASE.jar
spring-websocket-4.0.5.RELEASE.jar
包的引入后,创建两个接口和两个接口实现类,用来测试spring
package ioc.injection.dao;
public interface InjectionDAO {
public void save(String arg);
}
package ioc.injection.dao;
import ioc.injection.dao.InjectionDAO;
public class InjectionDAOImpl implements InjectionDAO {
public void save(String arg) {
//模拟数据库保存操作
System.out.println("保存数据:" + arg);
}
}
package ioc.injection.service;
public interface InjectionService {
public void save(String arg);
}
package ioc.injection.service;
import ioc.injection.dao.InjectionDAO;
public class InjectionServiceImpl implements InjectionService {
private InjectionDAO injectionDAO;
//构造器注入
public InjectionServiceImpl(InjectionDAO injectionDAO) {
this.injectionDAO = injectionDAO;
}
//设值注入
public void setInjectionDAO(InjectionDAO injectionDAO) {
this.injectionDAO = injectionDAO;
}
public void save(String arg) {
//模拟业务操作
System.out.println("Service接收参数:" + arg);
arg = arg + ":" + this.hashCode();
injectionDAO.save(arg);
}
}
类和接口创建完成之后,就需要配置spring, 我使用的配置方式是 xml, 在src目录下创建spring.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" >
<!-- set方式 -->
<!-- <bean id="injectionService" class="com.imooc.ioc.injection.service.InjectionServiceImpl"> -->
<!-- <property name="injectionDAO" ref="injectionDAO"></property> -->
<!-- </bean> -->
<!--构造器方式 -->
<bean id="injectionService" class="ioc.injection.service.InjectionServiceImpl">
<constructor-arg name="injectionDAO" ref="injectionDAO"></constructor-arg>
</bean>
<bean id="injectionDAO" class="ioc.injection.dao.InjectionDAOImpl"></bean>
</beans>
用junit4进行测试
创建测试类
import ioc.injection.service.InjectionService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@RunWith(BlockJUnit4ClassRunner.class)
public class TestInjection {
private ClassPathXmlApplicationContext context;
@Test
public void testSetter() {
context = new ClassPathXmlApplicationContext("spring.xml");
InjectionService service = (InjectionService) context.getBean("injectionService");
service.save("这是要保存的数据");
}
@Test
public void testCons() {
context = new ClassPathXmlApplicationContext("spring.xml");
InjectionService service = (InjectionService) context.getBean("injectionService");
service.save("这是要保存的数据");
}
}
完整项目
http://download.csdn.net/detail/ch717828/8553645