zoukankan      html  css  js  c++  java
  • spring学习笔记--概述&体系结构

    概述:

       Spring是最受欢迎的企业级java应用程序开发框架。

       优点:创建性能好、易于测试、可重用代码。轻量级的框架,基础版本只有2MB左右的大小。

       好处:Spring可以使开发人员使用POJOs开发企业级的应用程序。只使用POJOs的好处是你不需要一个EJB容器产品,比如一个应用程序服务器,比如Tomcat。

                  Spring在一个单元模式中是有组织的。即使包和类的数量非常大,你只要担心你是需要的,其他的可以忽略。

                  Spring不会让你白费力气重复工作。它真正的利用了一些现有的技术,比如:ORM框架、日志框架、JEE、Quartz和JDK计时器,其他试图技术。

       依赖注入(DI)

       Spring最认同的技术是控制反转的依赖注入模式。控制反转(IOC)是一个通用的概念,它可以用许多不同的方式去表达,依赖注入仅仅是控制反转的一个具体的例子。

       依赖注入是什么?例如类A依赖于类B。但是将类B通过IOC的方式注入到类A中。

       依赖注入可以以构造函数传递参数的方式发生,或者通过使用setter方法post-construction。依赖注入是Spring框架的核心部分。

       当编写一个复杂的Java应用程序时,应用程序类应该尽可能的独立于其他的Java类来增加这些类可重用可能性,当进行单元测试时,也可以使他们独立于其他类进行测试。

       面向方面的程序设计(AOP)

       Spring框架的一个关键组件是面向方面的程序设计(AOP)框架。一个程序中跨越多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。

       比如:日志记录、声明性事物、安全性、和缓存等等。

       在OOP中模块化的关键单元是类,而在AOP中模块化的关键单元是方面。AOP帮助你将横切面关注点从它们所影响的对象中分离出来,然而依赖注入帮助你将你的应用程序对象从彼此中分离出来。

       核心容器

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

       spring-core模块提供了框架的基本组成部门,包括IOC和依赖注入功能。

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

       context模块建立在core和beans模块的基础上建立起来的,它以一种类似于JNDI注册的方式访问。Context模块继承于Bean模块,并且添加了国际化、事件传播、资源加载和透明的创建上下文等功能。

       ApplicationContext接口是Context模块的焦点。spring-context-support提供了对第三方库集成到Spring上下文的支持,例如:缓存(EhCache、Guava、JCache)、邮件、调度、模块引擎等。

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

       数据访问/集成

       数据访问/集成层包括JDBC,ORM,OXM,JMS和事务处理模块,它们的细节如下:

       JDBC模块提供了JDBC抽象层,它消除了冗长的JDBC编码和对数据库供应商特定错误代码的解析。

       ORM模块提供了流行的对象关系映射API的集成,包括JPA、JDO和Hibernate等。通过此模块可以让这些ORM框架和spring的其他功能整合,例如:事物管理。

       OXM模块提供了对OXM实现的支持,比如JAXB、Castor、XMLBeans、JiBX、XStream等。

       JMS模块包含生产和消费消息的功能。

       事物模块为实现特殊接口类及所有的POJO支持编程和声明式事物管理。

       web

       Web 层由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成,它们的细节如下:

       Web模块提供面向web的基本功能和面向web的应用上下文,比如多部分(multipart)文件上传功能、使用Servlet监听器初始化IoC容器等。它还包括HTTP客户端以及Spring远程调用中与web相关的部分。

       Web-mvc 模块为web应用提供了模型视图控制(MVC)和REST Web服务的实现。Spring的MVC框架可以使领域模型代码和web表单完全地分离,且可以与Spring框架的其它所有功能进行集成。

       Web-Socket 模块为 WebSocket-based 提供了支持,而且在 web 应用程序中提供了客户端和服务器端之间通信的两种方式。

       Web-Portlet 模块提供了用于Portlet环境的MVC实现,并反映了spring-webmvc模块的功能。

  • 相关阅读:
    CS224n, lec 10, NMT & Seq2Seq Attn
    CS231n笔记 Lecture 11, Detection and Segmentation
    CS231n笔记 Lecture 10, Recurrent Neural Networks
    CS231n笔记 Lecture 9, CNN Architectures
    CS231n笔记 Lecture 8, Deep Learning Software
    CS231n笔记 Lecture 7, Training Neural Networks, Part 2
    pytorch坑点排雷
    Sorry, Ubuntu 17.10 has experienced an internal error
    VSCode配置python插件
    tmux配置与使用
  • 原文地址:https://www.cnblogs.com/BounceGuo/p/12048218.html
Copyright © 2011-2022 走看看