项目
MyEclipse 8.6
JUnit 4 测试
项目结构
package com.chni.dao;
import com.chni.bean.User;
public interface IUserDao {
public void add(User user);
public void delete(String id);
public void load(String id);
}
package com.chni.dao.impl;
import com.chni.bean.User;
import com.chni.dao.IUserDao;
public class UserDao implements IUserDao {
@Override
public void add(User user) {
System.out.println("执行添加"+user);
}
@Override
public void delete(String id) {
System.out.println("delete"+id);
}
@Override
public void load(String id) {
System.out.println("load"+1);
}
}
package com.chni.service;
import com.chni.bean.User;
public interface IService {
public void add(User user);
public void delete(String id);
public void load(String id);
}
package com.chni.service.impl;
import com.chni.bean.User;
import com.chni.dao.IUserDao;
import com.chni.service.IService;
public class Service implements IService{
private IUserDao userdao;
public IUserDao getUserdao() {
return userdao;
}
public void setUserdao(IUserDao userdao) {
this.userdao = userdao;
}
@Override
public void add(User user) {
userdao.add(user);
}
@Override
public void delete(String id) {
userdao.delete(id);
}
@Override
public void load(String id) {
userdao.load(id);
}
}
package com.chni.bean;
public class User {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + "]";
}
}
package com.chni.action;
import com.chni.bean.User;
import com.chni.service.IService;
public class UserAction {
private User user;
private IService service;
public void add(){
service.add(user);
}
public void delete(){
service.delete("1");
}
public void load(){
service.load("2");
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public IService getService() {
return service;
}
public void setService(IService service) {
this.service = service;
}
}
package com.chni.test;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.chni.action.UserAction;
import com.chni.bean.User;
public class TestJulit {
//创建工厂类
private BeanFactory factory= new ClassPathXmlApplicationContext("beans.xml");
@Test
public void test(){
UserAction action=factory.getBean("action", UserAction.class);
User user=new User();
user.setId("2");
user.setName("张三");
action.setUser(user);
action.add();
}
}
<?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">
<!-- 创建dao 默认为单例 下面一句话 相当于 UserDao dao=new UserDao -->
<bean id="userdao" class="com.chni.dao.impl.UserDao" />
<!-- 配置服务层 服务层的 userdao
使用技术IOC 依赖注入
通过setXXX设置 userdao-->
<bean id="service" class="com.chni.service.impl.Service">
<!--
<property name="userdao" ref="userdao"/> 这句话相当于下面
public void userdaoSet(IUserDao userdao){
this.userdao=userdao;
}
-->
<property name="userdao" ref="userdao"/>
</bean>
<!-- 使用多例 scope 范围 :当类中状态不做任何修改的话 使用单例 否则使用多例 -->
<bean id="action" class="com.chni.action.UserAction" scope="prototype">
<property name="service" ref="service"/>
</bean>
</beans>