IOC容器的补充
1.创建容器(两种)
//1.类路径加载
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//2.文件路径加载
ApplicationContext ctx2 = new FileSystemXmlApplicationContext("C:\\Users\\HP\\IdeaProjects\\Spring-demo1-lifeCycle\\src\\main\\resources\\applicationContext.xml");
//3.加载多个配置文件
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml","applicationContext.xml");
2.获取bean(三种)
//1.每次都需要变成强转
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
//2.在条件里面添加指定反射与1没有太大的差别
BookDao bookDao1 = ctx.getBean("bookDao", BookDao.class);
//3.容器中的对应的bean式唯一的
BookDao bean = ctx.getBean(BookDao.class);
3.容器类层次结构
就是当你在设计一个接口,后期发现功能不完善,就可以在这个接口的基础上实现另一个接口,以此来丰富功能
4.beanFactory接是所有容器类的顶层接口(类继承结构图)Ctrl+H
类路径加载配置文件
Resource Resource = new ClassPathResource("applicationContext.xml");
BeanFactory beanFactory = new XmlBeanFactory(Resource);
BookDao bookDao = beanFactory.getBean("bookDao", BookDao.class);
bookDao.save();
...BeanFactory创建完毕后,所有的bean均为延迟加载
核心容器总结
一.容器相关
1.BeanFactory是IOC容器的顶层接口,初始化BeanFactory对象是,加载的bean,延迟加载
2.ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载
3.ApplicationContex接口提供基础的bean操作相关方法,通过其他接口拓展其功能
4.ApplicationContext接口常用初始化类
1.CalssPathXmlApplicationContext
2.FileSystemXmlApplicationContext
二.bean相关
id | bean的id |
name | bean的别名 |
class | bean的类型 |
scope | 控制bean的实例数量 |
init-method | 生命周期初始化方法 |
destory-method | 生命周期销毁方法 |
autowire | 自动装配类型 |
factory-method | bean工厂方法,应用于静态工厂,实例工厂 |
factory-bean | 实例工厂bean |
lazy-init | 控制bean加载延迟 |