IoC思路分析
1、管理什么 --Service和Dao
2、如何将被管理的对象告知IoC容器 --配置
3、被管理的对象交给IoC容器,如何获取到IoC容器 --接口
4、IoC容器得到后,如何从容器中获取bean --接口方法
5、使用Spring导入哪些坐标 --pom.xml
代码实现:
①导入Spring坐标
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.11.RELEASE</version> </dependency> </dependencies>
②定义Spring管理的类(接口)
1 public interface BookService { 2 public abstract void save(); 3 }View Code
public class BookServiceImpl implements BookService { private BookDao bookDao = new BookDaoImpl() ; public void save(){ System.out.println("book service save..."); bookDao.save(); } }View Code
③创建Spring配置文件allicationContext.xml,用来管理bean
1 <!-- bean标签表示配置bean--> 2 <!-- id属性表示给bean起名字--> 3 <!-- class属性表示给bean定义类型--> 4 5 <bean id="bookDao" class="wcx.dao.impl.BookDaoImpl"/> 6 <bean id="bookService" class="wcx.service.impl.BookServiceImpl"> 7 8 </bean>View Code
④初始化IoC容器,通过容器获取bean
1 public class App2 { 2 public static void main(String[] args) { 3 //获取IoC容器 4 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 5 //获取bean 6 BookDao bookDao = (BookDao) ctx.getBean("bookDao"); 7 bookDao.save(); 8 9 BookService bookService = (BookService) ctx.getBean("bookService"); 10 bookService.save(); 11 12 13 } 14 }View Code
DI入门案例思路分析
1、基于IoC管理bean
2、Service中使用new形式创建的Dao对象不保留
3、Service中需要的Dao对象如何进入到Service中 setter方法
4、Service与Dao之间的关系如何描述 配置
代码实现:
①删除使用new创建的对象代码
②提供依赖对象对应的setter方法
1 public class BookServiceImpl implements BookService { 2 //删除业务层中用new方式产生的对象 3 private BookDao bookDao ; 4 5 public void save(){ 6 System.out.println("book service save..."); 7 bookDao.save(); 8 } 9 //提供对应的set方法 10 public void setBookDao(BookDao bookDao) { 11 this.bookDao = bookDao; 12 } 13 }View Code
③配置service与dao的关系
1 <bean id="bookService" class="wcx.service.impl.BookServiceImpl"> 2 <!-- 配置service与dao的关系--> 3 <!--property属性表示配置当前bean的属性 4 name表示配置中哪一个具体的属性 5 ref表示参照哪一个bean--> 6 <property name="bookDao" ref="bookDao"></property> 7 </bean>View Code
变量名之间的对应关系
标签:Code,入门,DI,bookDao,save,IoC,public,View From: https://www.cnblogs.com/wahahahhh/p/17078015.html