什么是Spring?
Spring的基本概念
简介
Spring 是最近大家都听到比较多的一种框架。尤其是SSM(Spring +SpringMVC+Mybatis)更是非常流行的WEB开发框架。那么到底什么是框架呢?
1框架:高度抽取可重用代码的一种设计,具有高度通用性。
在之前的学习中我们经常使用打包来复用一些通用的代码,来节省开发时间。所以经常使用打包的方式,生成Jar包。Jar包是一种工具。但是框架要比Jar包更抽象,使用的技术更通用。 可以说框架是多个可重用的模块集合形成某个领域的整体解决方案 。可以说框架是一个软件的骨架集合,是一个半成品的软件。举个例子,框架类似于开发商的毛坯房 ,已经具有房子的基本雏形,我们可以根据自己的需求可以装修成不同功能的房子。
那么Spring 是一种什么样的框架呢?
Spring框架是一种 容器框架 。
其实在Spring出现之前就有一种容器框架叫EJB(enterprise java bean )但是EJB有很多缺点,比如,实现太复杂。还需要繁琐的配置和复杂的代码。所以EJB并没有成功,慢慢被Spring框架所取代。Spring也 是容器类型的框架,有很多优良特性。
2Spring的优良特性
1非侵入式 :非侵入式( non-invasive )的设计程序代码对于框架依赖较小。
2容器管理:将对象的创建和关系交给容器进行管理,简化开发,降低耦合性。
3面向切片编程:面向切片编程的特性可以增强程序的复用性。许多通用功能如日志、事务、安全等都可以集中处理。
4组件化 :导入灵活,对于不使用的部分,可以不用都导入。
5一站式:功能全面提供一站式的支持,帮助程序员快速开发。
3 spring 的模划分
(1)Spring 的核心容器
Spring 的核心容器是其他模块建立的基础,它主要由Beans 模块、Core 模块、Context 模
块、Context- support 模块和SpEL ( Spring Expression Language , Spring 表达式语言)模块组成,具体介绍如下。
• Beans 模块:提供了BeanFactory ,是工厂模式的经典实现, Spring 将管理对象称为Bean 。
• Core 核心模块:提供了Spring 框架的基本组成部分,包括loC 和DI 功能。
• Context 上下文模块: 建立在Core 和Beans 模块的基础之上,它是访问定义和配置的任
何对象的媒介。其中ApplicationContext 接口是上下文模块的焦点。
• Context-support 模块:提供了对第三方库嵌入Spring 应用的集成支持,比如缓存
( EhCache 、Guava 、JCache) 、邮件服务(JavaMail) 、任务调度( CommonJ 、Quartz) 和模板引擎( FreeMarker 、JasperReports 、速率)。
• SpEL 模块:是Spring 3 . 0 后新增的模块,它提供了Spring Expression Language 支持,
是运行时查询和操作对象图的强大的表达式语言。
(2) Data Access/lntegration (数据访问l集成)
数据访问/集成层包括JDBC 、ORM 、OXM 、JMS 和Transactions 模块,真体介绍如下。
• JDBC 模块:提供了一个JDBC 的抽象层,大幅度地减少了在开发过程中对数据库操作的
编码。
.ORM 模块:对流行的对象关系映射API ,包括JPA 、JDO 和Hibernate 提供了集成层 支持。
.OXM 模块:提供了一个支持对象/XML 映射的抽象层实现,如JAXB 、Castor 、XMLBeans 、JiBX 和XStream 。
• JMS 模块:指Java 消息传递服务,包含使用和产生信息的特性,自4 . 1 版本后支持与
Spring-message 模块的集成。
• Transactions 事务模块:支持对实现特殊接口以及所有POJO 类的编程和声明式的事
务管理。
(3)Web
Spring 的Web 层包括WebSocket 、Servlet 、Web 和Portlet 模块,具体介绍如下。
• WebSocket 模块: Spring 4.0 以后新增的模块,它提供了WebSocket 和SockJS 的实现,
以及对STOMP 的支持。
• Servlet 模块:也称为Spring-webmvc 模块,包含了Spring 的模型一视图一控制器(MVC)
和REST Web Services 实现的Web 应用程序。
• Web 模块:提供了基本的Web 开发集成特性,例如: 多文件上传功能、使用Servlet 监
听器来初始化loC 容器以及Web 应用上下文。
• Portlet 模块:提供了在Portlet 环境中使用MVC 实现,类似Servlet 模块的功能。
(4)其他模块
Spring 的其他模块还有AOP 、Aspects 、Instrumentation 以及Test 模块,具体介绍如下。
• AOP 模块:提供了面向切面编程实现,允许定义方法拦截器和切入点,将代码按照功能
进行分离,以降低搞合性。
• Aspects 模块:提供了与AspectJ 的集成功能, AspectJ 是一个功能强大且成熟的面向切
面编程(AOP) 框架。
• Instrumentation 模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器
中使用。
• Messaging 模块: Spring 4.0 以后新增的模块,它提供了对消息传递体系结构和协议
的支持。
• Test 模块:提供了对单元测试和集成测试的支持。
Spring 的可以用到相关模块导入相对应的包