1 创建一个包 (com.it.csx_di)
2 在这个包(com.it.csx_di)下创建一个接口(BookDao)
BookDao接口,代码如下:
public interface BookDao {
public void save();
}
3 在这个包(com.it.csx_di)下创建一个类(BookDaoImpl)
BookDaoImpl类,代码如下:
public class BookDaoImpl implements BookDao{
String name;
String gender;
@Override
public void save() {
// TODO Auto-generated method stub
System.out.println("save....");
}
//快捷键 shift+alt+s r
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
4 在这个包(com.it.csx_di)下创建一个接口(BookService)
BookService接口,代码如下:
public interface BookService {
public void addBook();
}
5 在这个包(com.it.csx_di)下创建一个类(BookServiceImpl)
BookServiceImpl类。代码如下:
public class BookServiceImpl implements BookService {
//以前给成员变量赋值的方式
// private BookDao bookDao1=new BookDaoImpl();
// 通过xml文件的形式给bookDao变量赋值
private BookDao bookDao;
@Override
public void addBook() {
// TODO Auto-generated method stub
this.bookDao.save();
}
public BookDao getBookDao() {
return bookDao;
}
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
}
6
在com.it.csx_di包中创建一个beans.xml文件,添加约束。
这个约束从IOC beans.txt复制过来。
Xml文件的内容如下:
<!-- 实例化一个BookDaoImpl类的实例,并且给成员变量赋值 -->
<bean id="bookDaoId" class="com.it.csx_di.BookDaoImpl">
<!-- <proptery>标签的作用就是调用set方法 -->
<property name="name">
<value> <![CDATA[spring框架 作者&张三]]></value>
</property>
<property name="gender"><null></null></property>
</bean>
<!-- ref=bean的Id value=一个值 -->
<bean id="bookServiceId" class="com.it.csx_di.BookServiceImpl">
<!-- 把bookDaoImpl类的实例注入给BookServiceImpl类中的bookDao成员变量 -->
<property name="bookDao" ref="bookDaoId"></property>
</bean>
7 测试程序:
public class TestDI {
public static void main(String[] args) {
String xmlPath="com/it/csx_di/beans.xml";
// ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext(xmlPath);
ApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext(xmlPath);
BookService bean =(BookService) classPathXmlApplicationContext.getBean("bookServiceId");
bean.addBook();
}
}