Spring
什么是Spring
Spring是一个开源的,轻量级控制反转(IoC)和面向切面(AOP)的容器框架。目的是为了解决企业开发的复杂度。
Spring框架图:
控制反转
是一种面向对象编程的设计原则,将对象的创建和对象依赖的创建被动的交给容器控制程序(BeanFactory)来完成,从而降低对象与对象之间的耦合度。
实现方式
依赖注入(DI):容器全权负责组件的拼装,它会把符合依赖关联的对象通过JavaBean属性(方法注入)或构造函数(构造注入)或添加注解的方式传递给需要的对象。
面向切面编程
通过预编译和运行期动态代理实现在不修改程序代码的前提下给程序动态添加功能的一种技术
在Spring中的应用:权限拦截,运行期监控,事务管理等
BeanFactory与ApplicationContext的区别
1.BeanFactory是Spring中最底层的接口,负责读取Bean的配置文件,管理Bean的加载和实例化,维护Bean之间的依赖关系,负责Bean的生命周期
2.ApplicationContext是BeanFactory的派生类,是对BeanFactory的扩展
默认初始化所有Singleton、支持国际化、资源访问(url)、事件机制、同事加载多个配置文件、声明式启动、载入多个上下文
Spring支持的的几种Bean的作用域
singleton:每个容器一个Bean
prototype:每个请求一个实例
request:每个请求一个实例,请求完回收
session:session过期回收
global-session:portlet相关,与session效果相同