关于Spring学习一——Spring框架概述

2 篇文章 0 订阅
1 篇文章 0 订阅

最近一年多都是在银行做开发,用的他们银行自己的框架CTP,因而渐渐对Spring以及它兄弟SpringBoot和SpringCloud愈发生疏。

现在突然觉醒,不能再一直以来CTP框架在银行开发中浑浑噩噩度日,所以决定将丢到的东西一一拾起。同时与君共勉,相互学习,共同进步。

学习Spring5,首先要有个总览图。

Spring是分层的JAVA SE/EE轻量级开源框架。以IOC(Inverse of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为内核。

在实际开发中,通常使用三层架构,即:表现层(Web)、业务逻辑层(Service)、持久层(dao)。

Spring 总共大约有 20 个模块。

一、Data Access/Integration  数据访问/集成

JDBC模块:提供一个JDBC的抽象层、大幅减少在开发过程中对数据库操作的编码;

ORM模块:对流行的对象关系映射API,包括JPA、JDO、Hibernate、和iBatis 提供了集成层;Obeject-relation-mapping。

OXM模块:提供了一个支持对象/XML 映射的抽象层实现,如JAXB、XMLBeans、XStream。

JMS模块:指Java的消息服务,包含的功能为生产和消费的信息,Java Message Service。

Transaction事务模块:支持变成和声明式事务管理实现特殊接口类,所有的POJO(Plain Ordinary Java Object,普通的Java对象,特征是与Data映射,只有Setter、Getter方法)。

二、Web模块

web模块:提供了基本的Web开发集成特点,例如文件上传功能、使用的servlet监听器的IoC容器初始化以及应用上下文。

Servlet模块:包括Spring模型--视图--控制器(MVC:module-View-Controller)实现Web应用程序。

Struts模块:包含支持类内的Spring应用程序,集成经典的StrutsWeb层(关于Struts 在后面逐渐被淘汰,理由有时间再说)。

Portlet模块:提供了在portlet环境中使用MVC实现,类似Web-Servlet模块的功能。

三、Core Container核心容器

Bean模块:提供了BeanFactory,是工厂模式的经典实现,Spring将管理对象成为Bean(什么是Bean呢?和POJO有什么区别?请参考本文前面数据访问层中提到的POJO)。

Core核心模块:提供了Spring容器的基本组成部分,包括Ioc和DI功能(什么是控制反转?什么是依赖注入?又有什么区别?别急,后面会一一讲到)。

Context上下文模块:建立在核心和Beans模块的基础之上,是访问定义和配置任何对象的媒介。ApplicationContext 接口是上下文模块的焦点。

Expression Language 模块:是运行时查询和操作对象图的强大的表达式语言。也是就是支持Java/XML/注解/SQL/JSON/JSP等等在Spring中进行表达。

四、其他模块

AOP模块:提供了面向切面编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性。

Aspect模块:提供了AspectJ的集成,是一个强大且成熟的面向切编程(AOP)框架。---Spring 为什么这么受欢迎,就是因为它可以集成很多模块和兼容其它得分框架,达到扩展功能呢和解耦和的目的。

Instrumentation模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。

Message模块:顾名思义,其实就是负责消息的梳理、处理,包括转换和反映给不同的层。

Test模块:支持Spring组件,使用JUnit 或Test NG 框架的测试。现在许多公司,也包括我们银行体系都要求做到单元测试TDD或者Jenkins 框架下的持续集成的单元测试,已确保代码在每次迭代中避免出现错误,以及万一出现错误后可以很快的定位代码块,进行后续维护很方便。

以上是对Spring模块的一个大概了解。

后面我们将一一深入到上面模块中,对Spring框架进行学习。

(以下是后言,可以当作废话)

我想说的我可能会跳着说,按照Core Container(核心容器)到AOP,再到Data Acess/Integrtaion,然后是web,最后到我们的单元测试Jenkins。当然有的时候在学习时也会串着说,因为需要进行对比和联系,以便更好的认识他们。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值