1 Spring的ioc操作
1.1 概述
1 把对象的创建交给spring进行管理
2 ioc操作两部分:
(1)ioc的配置文件方式
(2)ioc的注解方式
1.2 IOC 容器
在 Spring IOC 容器读取 Bean 配置创建 Bean 实例之前, 必须对它进行实例化. 只有在容器实例化后, 才可以从 IOC 容器里获取 Bean实例并使用.
Spring提供了两种类型的 IOC 容器实现,无论使用何种方式, 配置文件时相同的
BeanFactory: IOC 容器的基本实现.
ApplicationContext: 提供了更多的高级特性. 是 BeanFactory 的子接口.
1.3 IOC底层原理
1.3.1 技术
(1)xml配置文件
(2)dom4j解决xml
(3)工厂设计模式
(4)反射
1.3.2 画图分析
1.4 IOC入门案例
1.4.1 第一步 导入jar包
解压资料zip文件
Jar特点:都有三个jar包
(2)做spring最基本功能时候,导入四个核心的jar包就可以了
(3)导入支持日志输出的jar包
1.4.2 第二步 创建类,在类里面创建方法
public classUser {
public void add(){
System.out.println("add...");
}
}
1.4.3 第三步 创建spring配置文件,配置创建类,(或者插件开发)
(1)spring核心配置文件名称和位置不是固定的
- 建议放到src下面,官方建议applicationContext.xml
(2)引入schema约束
(3)配置对象创建
<!-- ioc入门 -->
<bean id="user" class="spring.ioc.User"></bean>
1.4.4 第四步 写代码测试对象创建(实际项目没用)
这段代码在测试中使用
@Test
public void testAdd() {
//加载核心配置文件
ApplicationContextctx =
newClassPathXmlApplicationContext("applicationContext.xml");
//得到创建的对象 id=user
Useruser = (User) ctx.getBean("user");
user.add();
}
2 注意
2.1 IOC和DI区别
(1)IOC: 控制反转,把对象创建交给spring进行配置
(2)DI: 依赖注入,向类里面的属性中设置值
(3)关系:依赖注入不能单独存在,需要在ioc基础之上完成操作
2.2 BeanFactory和ApplicationContext的区别?
BeanFactory是Spring容器顶级核心接口,比较早,但功能比较少,getBean就是BeanFactory定义的。
ApplicationContext是Spring里面的另外一个容器顶级接口,它继承于BeanFactory,但是提供的功能譬如校验,国际化,监听,对Bean的管理功能比较多,一般使用ApplicationContext。