Spring ICO使用


项目


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>


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值