您的位置:首页 > 编程语言 > Java开发

Spring学习札记:第2节 属性注入方式以及模拟BeanFactory实现

2013-12-03 11:46 615 查看
属性注入方式大致有:

Setter注入

构造方法注入

注解注入

(1)java annotation

(2)spring annotation

 

下面使用MyEclipse完成一个Setter注入属性的实例。



1.建立一个JAVA Project,名字为:Spring_IocByEclipse

2.导入Spring核心包:Spring 3.0 Core Libraries

3.创建如下几个包及相应的类:

(1)实体包及相应的类

包:net.nw.vo

类:Students.java

package net.nw.vo;

//学生类
public class Students {
private String sid;     //学号
private String sname;   //姓名
private int age;		//年龄

public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

}


 

(2)DAO包及相应的类

包:net.nw.dao(接口层)

类:StudentsDAO.java

package net.nw.dao;

import net.nw.vo.Students;

public interface StudentsDAO {
//保存学生
public boolean saveStudents(Students s);

}


(3)DAO实现包

包:net.nw.dao.impl,接口实现层

类:StudentsDAOImpl.java

package net.nw.dao.impl;

import net.nw.dao.StudentsDAO;
import net.nw.vo.Students;

public class StudentsDAOImpl implements StudentsDAO {

@Override
public boolean saveStudents(Students s) {
// TODO Auto-generated method stub
if(s!=null){
System.out.println("学号:"+s.getSid());
System.out.println("姓名:"+s.getSname());
System.out.println("年龄:"+s.getAge());
return true;
}else{
return false;

}

}

}


(4)服务层包

包:net.nw.service

类:StudentsService.java

package net.nw.service;

import net.nw.dao.StudentsDAO;
import net.nw.vo.Students;

public class StudentsService {
private StudentsDAO sDao;

public StudentsDAO getsDao() {
return sDao;
}

public void setsDao(StudentsDAO sDao) {
this.sDao = sDao;
}

//保存学生
public boolean saveStudents(Students s){
if(sDao.saveStudents(s)){
return true;
}else{
return false;
}
}

}


(5)配置applicationContext.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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <bean name="students" class="net.nw.vo.Students"/>
<bean name="studentsDAO" class="net.nw.dao.impl.StudentsDAOImpl"/>
<bean name= "studentsService" class="net.nw.service.StudentsService">
<property name="sDao" ref="studentsDAO"></property>
</bean>
</beans>


(6)测试类

建立一个源文件夹:test

建立一个测试包:net.nw.service

建立一个测试类:TestStudentsService.java

package net.nw.service;

import net.nw.vo.Students;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import junit.framework.Assert;
import junit.framework.TestCase;

public class TestStudentsService extends TestCase{
public void testSaveStudents(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
Students s = (Students)ctx.getBean("students");
s.setSid("2010101010");
s.setSname("赵云");
s.setAge(65);
StudentsService sService = (StudentsService)ctx.getBean("studentsService");
Assert.assertEquals(true, sService.saveStudents(s));
}

}


4.测试结果:

学号:2010101010

姓名:赵云

年龄:65
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: