day2
IoC入门案例思路分析
1.管理什么?(Service和Dao)
2.如何将被管理的对象告知IoC容器?(配置)
3.被管理的对象交给IoC容器,如何获取到IoC容器(接口)
4.IoC容器得到后,如何从接口中获取bean?(接口方法)
5.使用Spring导入哪些坐标?(pom.xml)
- 创建需要用到的接口和类
package com.edu.dao.Impl;
import com.edu.dao.BookDao;
public class BookDaoImpl implements BookDao{
public void save() {
System.out.println("book dao save...");
}
}
package com.edu.service.Impl;
import com.edu.dao.BookDao;
import com.edu.dao.Impl.BookDaoImpl;
import com.edu.service.BookService;
public class BookServiceImpl implements BookService{
private BookDao bookDao=new BookDaoImpl();
public void save() {
System.out.println("book service save ...");
bookDao.save();
}
}
package com.edu.dao;
public interface BookDao {
public void save();
}
package com.edu.service;
public interface BookService {
public void save();
}
平时new对象的方式–Test1:
package com.edu.test;
import com.edu.service.BookService;
import com.edu.service.Impl.BookServiceImpl;
public class Test1 {
public static void main(String[] args) {
BookService bookService=new BookServiceImpl();
bookService.save();
}
}
//输出
/*book service save ...
book dao save...*/
- 进入正题,配置
pom.xl文件中配置
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.23</version>
</dependency>
配置完之后,在resources中建如下xml
头文件:(我用的eclipse,idea貌似能直接出来头文件,我是复制的,这咱也不太懂,复制铁定能用)
<?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">
<!--1.导入spring的坐标spring-context-->
<!--2.配置bean -->
<!--bean标签配置bean,id属性表示给bean起别名,class属性给bean定义类型 -->
<bean id="bookDao" class="com.edu.dao.Impl.BookDaoImpl"></bean>
<bean id="bookService" class="com.edu.service.Impl.BookServiceImpl"></bean>
</beans>
- 创建Test2,获取IoC容器,获取bean
package com.edu.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.edu.dao.BookDao;
public class Test2 {
public static void main(String[] args) {
// 3.获取IoC容器
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
// 4.获取bean
//bookDao
BookDao bookDao=(BookDao) ctx.getBean("bookDao");
bookDao.save();
//bookService
BookService bookService=(BookService) ctx.getBean("bookService");
bookService.save();
}
}
//运行输出
/*book dao save...
book service save ...
book dao save...
*/
总结
- 导坐标(pom.xl配置)
- 定义类和接口
- 创建spring配置文件,管理bean
- 初始化IoC容器(Test2中)通过IoC容器获取bean