zoukankan      html  css  js  c++  java
  • 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容器检索对象,还支持列表的投影、选择以及聚合等。

        

    “小智”和“佩奇”是同班同学,佩奇同学非常乐于思考,经常提问题,小智同学,聪明绝顶,乐于解答问题。
  • 相关阅读:
    Balanced Binary Tree
    Convert Sorted List to Binary Search Tree
    Convert Sorted Array to Binary Search Tree
    Binary Tree Zigzag Level Order Traversal
    Validate Binary Search Tree
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Maximum Depth of Binary Tree
    如何把U盘的两个盘或者多个盘合成一个
    bugku 想蹭网先解开密码
  • 原文地址:https://www.cnblogs.com/liyefei/p/13065961.html
Copyright © 2011-2022 走看看