几个概念:
IOC:spring的核心之一,就是控制反转,一种思想,让你不用关注对象的创建过程,由spring来负责控制对象的生命周期和对象间的关系,你只要用就可以了。
DI:依赖注入,容器启动和在对象实例化的过程中会自动为对象提供它需要对象属性。
AOP:切面管理,横向管理,加强某些代码,前置,后置,环绕,异常抛出增强。
几个类:
BeanFactory :实例工厂,最基础的底层容器。
ApplicationContext:spring上下文,容器,顶层父类就是BeanFactory,不过比它的功能强大,ApplicationContext有几个子类:
1、类路径获取配置文件
ApplicationContext applicationContext= new ClassPathXmlApplicationContext("spring.xml");
2、文件系统路径获取配置文件【绝对路径】
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("E:\\idea\\public\\springdemo\\src\\main\\resources\\spring.xml");
3、无配置文件加载容器
ApplicationContext applicationContext = new AnnotationConfigApplicationContext("com.xx");
4、springboot 加载容器
ApplicationContext applicationContext = new EmbeddedWebApplicationContext();
下面是ApplicationContext,具体的实现类都继承了
org.springframework.context.support.AbstractXmlApplicationContext,下面的是AbstractXmlApplicationContext的类图(通过idea自动生成,就是小了点将就看吧,步骤:类上鼠标右键,Diagrams->Show Diagrams->Java class Diagrams)
BeanDefination:在容器初始化后,对象实例化之前都会封装成 BeanDefination