• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

袁洪

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

01.Spring介绍

一、Spring是什么
Spring是一个JavaSE应用 full-stack轻量级开源框架、它以IOC控制反转和AOP面向切面为核心、提供了展示层SpringMVC和持久层SpringJDBC以 及业务层事务管理等企业应用技术
full-stack:
full-stack 的设计,意味着各层能够无缝的集成在一起,遵循的DRY原则(don't repeat yourself),将各层共用的东西,抽取出来,并通过自顶向下的设计,无缝的集成在一起,粘合在一起,达到更高层次、更粗粒度的重用,同时为了保证灵活的可扩展性,在更高、更粗的粒度上遵守开放-封闭的原则,在各层的各个关键点,要提供诸多的钩子,回调的接口,供使用者扩展。full-stack的设计,在层与层之间,并不一味的追求松散的机制,而是相反,在层与层之间增强一定的内聚性,粘合力,以此来达到粗粒度的封装与重用。full-stack 的设计,其爆发出的威力是巨大的,相对普通的单一层面的设计,在开发效率上不是一个层次上的,基于28原理的设计,可以满足80的调用者直接开发,19%的调用者,通过扩展点进行扩展来满足需求,对于1%钻角尖的需求,自己去造轮子。Spring就是使用这样的设计,我们设计如果以它们为中心,生产力可以极大提高
IOC: IOC是控制反转,它不是一种技术,而是一种设计思想,创建对象和使用对象交给Spring处理
AOP:
AOP是面向切面编程,在目标方法之前或之后实现增强。可以说面向对象编程OOP是从静态角度考虑程序结构,而面向切面编程AOP是从动态角度考虑程序运行结果
二、Swagger作用/特性

内容

三、Spring优点/优势

1:方便解耦,简化开发(IOC)
2:AOP 编程的支持
3:声明式事务的支持
4:方便程序的测试
5:方便集成各种优秀框架
6:降低 JavaEE API 的使用难度

四、Spring缺点
内容
五、Spring组件

1:Data Access/Integration

数据访问/集成层包括 JDBC、ORM、OXM、JMS 和 Transactions 模块:

JDBC模块:提供了一个 JDBC 的抽象层,大幅度减少了在开发过程中对数据库操作的编码。
ORM模块:对流行的对象关系映射 API,包括 JPA、JDO、Hibernate 和 iBatis 提供了的集成层。
OXM模块:提供了一个支持对象/XML 映射的抽象层实现,如 JAXB、Castor、XMLBeans、JiBX 和 XStream。
JMS模块:指 Java 消息服务,包含的功能为生产和消费的信息。
Transactions 事务模块:支持编程和声明式事务管理实现特殊接口类,并为所有的 POJO。

2:Web模块

数据访问/集成层包括 JDBC、ORM、OXM、JMS 和 Transactions 模块:

Web模块:提供了基本的 Web 开发集成特性,例如多文件上传功能、使用的 Servlet 监听器的 IoC 容器初始化以及 Web 应用上下文。
Servlet模块:包括 Spring 模型—视图—控制器(MVC)实现 Web 应用程序。
Struts模块:包含支持类内的 Spring 应用程序,集成了经典的 Struts Web 层。
Portlet模块:提供了在 Portlet 环境中使用 MV C实现,类似 Web-Servlet 模块的功能。

3:Core Container(核心容器)

由 Beans 模块、Core 核心模块、Context 上下文模块和 Expression Language 表达式语言模块组成:

Beans 模块:提供了 BeanFactory,是工厂模式的经典实现,Spring 将管理对象称为 Bean。
Core 核心模块:提供了 Spring 框架的基本组成部分,包括 IoC 和 DI 功能。
Context 上下文模块:建立在核心和 Beans 模块的基础之上,它是访问定义和配置任何对象的媒介。ApplicationContext 接口是上下文模块的焦点。
Expression Language 模块:是运行时查询和操作对象图的强大的表达式语言。

4:其它模块

Spring的其他模块还有 AOP、Aspects、Instrumentation 以及 Test 模块

AOP 模块:提供了面向切面编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性。
Aspects 模块:提供与 AspectJ 的集成,是一个功能强大且成熟的面向切面编程(AOP)框架。
Instrumentation 模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
Test 模块:支持 Spring 组件,使用 JUnit 或 TestNG 框架的测试。

posted on 2021-07-23 10:00  袁洪  阅读(84)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3