1.IOC入门案例思路分析
- 管什么?管bean(service和dao)
- 如何将被管理的对象告知IOC容器?(配置)
- 被管理的对象交给IOC容器,如何获取到IOC容器?(提供了个接口)
- 如何获取到IOC中的bean?(接口方法)
- 使用spring导入哪些坐标?(pom.xml)
- 案例分析
- 创建好空maven项目
- 创建spring的xml配置管理文件
- 先在maven文件中导springframework包(记得刷新)
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.10.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies>
- 如图: 插入后在resources文件夹中右键就能找到springConfig文件
- 配置Bean
- 属性class:用于指示需要造对象的实现类的位置(不要配接口,接口不能造对象)
- 属性id:给bean一个名字,用来在IOC容器中拿创建的对象(id不能重复)
- 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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--1.导入spring的坐标spring-context,对应版本是5.2.10.RELEASE-->
<!--2.配置bean-->
<!--bean标签标示配置bean
id属性标示给bean起名字
class属性表示给bean定义类型-->
<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/>
<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">
</bean>
</beans>
- 运行:创建main方法,在main方法中获取IOC容器
package com.itheima;
import com.itheima.dao.BookDao;
import com.itheima.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App2 {
public static void main(String[] args) {
//1.获取IoC容器, ApplicationContext是接口,所以要new一个实现类,再告诉它配置文件名
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//2.获取bean(根据bean配置id获取)
// BookDao bookDao = (BookDao) ctx.getBean("bookDao");
// bookDao.save();
BookService bookService = (BookService) ctx.getBean("bookService");
bookService.save();
}
}
- dao层代码
- 接口
package com.itheima.dao;
public interface BookDao {
public void save();
}
- 实现类
package com.itheima.dao.impl;
import com.itheima.dao.BookDao;
public class BookDaoImpl implements BookDao {
public void save() {
System.out.println("book dao save ...");
}
}
- service层代码
- 接口
package com.itheima.service;
public interface BookService {
public void save();
}
- 实现类
package com.itheima.service.impl;
import com.itheima.dao.BookDao;
import com.itheima.service.BookService;
public class BookServiceImpl implements BookService {
private BookDao bookDao = new BookDaoImpl();
public void save() {
System.out.println("book service save ...");
bookDao.save();
}
}
- 运行结果
注:只设计IOC操作,下章讲绑定bean,这样才算完整。
视频链接