导入jar包
目标类
package com.itheima.b_id;
public interface BookDao {
public void addBook() ;
}
package com.itheima.b_id;
public class BookDaoImpl implements BookDao {
@Override
public void addBook() {
System.out.println("di add book");
}
}
package com.itheima.b_id;
public interface BookService {
public void addBook() ;
}
***************************************关键**************
package com.itheima.b_id;
public class BookServiceImpl implements BookService {
private BookDao bookDao; //接口 + set方法
public void setBookDao(BookDao bookDao){
this.bookDao = bookDao ;
}
@Override
public void addBook() {
this.bookDao.addBook();
}
}
配置文件
<?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">
<!-- bean definitions here -->
<!-- 创建service实例
bean:
id:用于之后从spring容器获得实例时使用的
class:需要创建实例的全限定类名
property :
name : bean属性名,通过set方法获得
ref:另一个bean的id值的引用
-->
<bean id ="BookServiceId" class = "com.itheima.b_id.BookServiceImpl">
<property name="bookDao" ref="BookDaoId"></property>
</bean>
<!-- 创建dao实例 -->
<bean id = "BookDaoId" class = "com.itheima.b_id.BookDaoImpl" ></bean>
</beans>
测试
package com.itheima.b_id;
import org.apache.catalina.core.ApplicationContext;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDI {
@Test
public void demo01(){
String xmlPath = "com/itheima/b_id/beans.xml"; //获得容器
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath) ;
BookService bookService = (BookService) applicationContext.getBean("BookServiceId") ; //获得内容
bookService.addBook();
}
}