spring概述和体系结构

  Spring是最受欢迎的企业级应用程序开发框架,我想作为一个程序员没有人不知道它。它是一个轻量级的java开源框架。核心特点是可以开发任何java应用程序,目标是使j2ee项目变得更容易使用。

  介绍Spring之前,先介绍两种思想:控制反转(IoC)面向切面编程(AOP)

控制反转

  Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。

  • 谁控制谁,控制什么
    谁控制谁?
      当然是IoC 容器控制了对象;
    控制什么?
      主要控制了外部资源获取(不只是对象包括比如文件等)。

  • 为何是反转
    有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;
    为何是反转?
      因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。

  • Ioc和DI
    组件之间的依赖关系由容器在运行期决定,依赖注入(DI)仅仅是控制反转的一个具体的例子。

面向切面编程

  AOP是Spring框架面向切面的编程思想,AOP采用一种称为“横切”的技术,将涉及多业务流程的通用功能抽取并单独封装,形成独立的切面,这些横切关注点在概念上独立于应用程序的业务逻辑。有各种各样常见的很好的关于方面的例子,比如日志记录、声明性事务、安全性,和缓存等等。

 

体系结构

  Spring是模块化的,允许选择要使用的模块。Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。

  

  核心容器由spring-core,spring-beans,spring-context,spring-context-support和spring-expression等模块组成,它们的细节如下:

  • spring-core
    提供了框架的基本组成部分,包括Ioc/DI功能。

  • spring-beans
    提供BeanFactory,工厂模式的微妙实现,它移除了编码式单例的需要,并且可以把配置和依赖从实际编码逻辑中解耦。

  • spring-context
    建立在由core和 beans 模块的基础上建立起来的,Context模块继承自Bean模块,并且添加了国际化(比如,使用资源束)、事件传播、资源加载和透明地创建上下文(比如,通过Servelet容器)等功能。ApplicationContext接口是Context模块的焦点。

  • spring-context-support
    提供了对第三方库集成到Spring上下文的支持,比如缓存(EhCache, Guava, JCache)、邮件(JavaMail)、调度(CommonJ, Quartz)、模板引擎(FreeMarker, JasperReports, Velocity)等。

  • spring-expression
    提供了强大的表达式语言,用于在运行时查询和操作对象图。它是JSP2.1规范中定义的统一表达式语言的扩展,支持set和get属性值、属性赋值、方法调用、访问数组集合及索引的内容、逻辑算术运算、命名变量、通过名字从Spring IoC容器检索对象,还支持列表的投影、选择以及聚合等。

    

 

posted @ 2020-06-08 16:37  温故方能知新  阅读(155)  评论(0编辑  收藏  举报