Spring框架是一个开放源代码的J2EE应用程序框架,针对bean的生命周期进行管理的轻量级容器。
提供功能强大IOC、AOP及Web MVC等功能。
提供java应用开发的一站式解决方案。
方便解耦,简化开发(IOC/DI)
AOP编程的支持(AOP)
声明式事务的支持(声明式事务)
方便程序的测试
方便集成各种优秀框架(不重复创造轮子)
降低Java EE API的使用难度
spring 源码是经典学习范例
spring提供了两大功能
ioc/di(控制反转/依赖注入)
aop(面向切面编程)(声明式事务)
IOC(控制反转)
我们将对象的控制权由第二方(你编写的程序)转交给第三方(spring),由于对象的控制权发生的反转,因此我们就将之称为控制反转。我们需要在程序中进行一定的配置(XML或注解),才能够将对象的控制权转交给spring。
spring-context
获取spring容器可以使用BeanFactory,也可以使用ApplicationContext。
一般不会使用BeanFactory,因为BeanFactory产生的容器永远都是延迟加载。
ApplicationContext产生的容器更为智能,它会根据容器管理对象是否是单例决定加载策略(单例:立即加载、多例:延迟加载)
获取容器三种方式
方法 | 作用 |
---|---|
ClassPathXmlApplicationContext | 读取类路径下的配置文件产生容器(读取xml文件) |
FileSystemXmlApplicationContext | 读取文件系统中的配置文件产生容器 |
AnnotationConfigApplicationContext | 读取java配置类产生容器(读取类) |