ioc的思想,主要是将对象关系的发现,创建和维护都交给容器,客户端程序只依赖IOC容器,从容器获取依赖的资源。
关键的接口和类
BeanFactory就是IOC容器的基本实现
默认实现DefaultListableBeanFactory
BeanDefinition是spring容器用来创建,装配bean的元数据对象
BeanDefinitionRead来解析配置的元数据,生成beanDefinition对象,可通过配置文件,注解等多种方式
BeanFactoryPostProcessor可以通过后置处理修改beanfactory
InitializingBean 和DisposableBean 可以在bean实例创建和销毁时,调用额外的方法
BeanPostProcessor也可以让你在bean实例创建后进行修改
FactoryBean,容器会调用getObject生成用户自定义的对象
ApplicationContext扩展了beanfactory,提供了国际化,AOP集成,webapplicationcontext等
Resource
spring封装了几个常用的java获取资源的方式的对象
ByteArrayResource 从内存字节数组获取
InputStreamResource 从字节输入流获取
FileSystemResource从文件系统获取
ClassPathResource从classpath获取
UrlResource从url资源获取
ServletContextResource从webroot即WEB-INF下获取
ApplicatonContext将资源加载,解析和描述的工作委托给ResourcePatternResolver类来完成
支持多种resource,ClassPathXmlApplicationContext,FileSystemXmlApplicationContext