概述
Spring是一个开源框架,为简化企业级应用开发而生。Spring可以是使简单的JavaBean实现以前只有EJB才能实现的功能。Spring是一个IOC和AOP容器框架。
主要核心
控制反转(IOC)
,传统的Java开发模式中,当需要一个对象时,我们会自己使用new或者getInstance等直接或者间接调用构造方法创建一个对象,而在Spring开发模式中,spring容器使用了工厂模式为我们创建了所需要的对象,不需要我们自己创建了,直接调用spring提供的对象就可以了,这是控制反转的思想。控制反转主要的实现方式有两种:依赖查找、依赖注入。依赖注入(DI)
,spring使用JavaBean对象的set方法或者带参数的构造方法为我们在创建所需对象时将其属性自动设置所需要的值的过程,就是依赖注入的思想。面向切面编程(AOP)
,在面向对象编程(oop)思想中,我们将事物纵向抽成一个个对象。而在面向切面编程中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制、事务管理、记录日志等公用操作处理的过程就是面向切面编程的思想。AOP底层是动态代理,如果是接口采用JDK动态代理,如果是类采用CGLIB方式实现动态代理。
结构
spring由20多个模块组成,可以分为数据访问/集成
、Web
、面向切面编程
、应用服务器设备管理
、消息发送
、核心容器和测试
Core模块
:封装了框架依赖的最底层部分,包括资源访问、类型转换和常用的工具类;Beans模块
:提供框架的基础部分,包括控制反转和依赖注入。其中BeanFactory是容器核心。Context模块
:以Core和Beans为基础,集成Beans模块功能并添加资源绑定、数据验证、国际化等;核心接口是ApplicationContext。