1.Spring是什么
简单来说,spring是一个IOC(DI)和AOP容器框架
- IOC(Inversion of Control):即控制反转,反转资源获取的方向,容器主动地将资源推送给它所管理的组件。
- DI(Dependency Injection):即依赖注入,IOC的另一种表述方式,组件以一些预先定义好的方式接受来自如容器的注入。
2.在Spring的IOC容器里配置Bean(这里先讲基于xml文件的方式)
- Bean的配置方式
- 通过全类名(反射),所以要求Bean 中必须有无参构造器
- 通过工厂方法(静态工厂方法 & 实例工厂方法)
- FactoryBean
- 在xml文件中通过节点来配置bean
<!--通过全类名的方式来配置bean-->
<bean id="example" class="com.itzzz.spring.example">
</bean>
- id: Bean的名称
- 在IOC容器中唯一;
- 若id没有指定,spring自动将全限定性类名作为Bean的名字;
- id可以指定多个名字,名字之间可用逗号、分号、或空格分隔。
Spring容器
在spring IOC容器读取Bean配置创建Bean实例之前,必须对它进行实例化。
- Spring提供了两种类型的IOC容器实现:
- BeanFactory:IOC容器的基本实现(很少使用);
- ApplicationContext:提供了更多的高级特性,是BeanFactory的子接口。
- ApplicationContext的主要实现类
- ClassPathXmlApplicationContext:从类路径下加载配置文件
- FileSystemXmlApplicationContext:从文件系统中加载配置文件
- ConfigurationApplicationContext扩展于ApplicationContext,新增两个主要方法:refresh() 和 close(),让ApplicationContext具有启动、刷新和关闭上下文的的能力
- ApplicationContext在初始化上下文时就能实例化所有单例