Spring 基础概述


分类: Java
评论: 0

Spring 基础概述



分类: Java
评论: 0

Spring

概述

Spring 是一个开源框架,为了简化企业开发流程而诞生的一个框架。能够从“普通旧 Java objects”(POJO)build applications 并将企业服务 non-invasively(非侵入式) 应用于 POJO。此功能适用于 Java SE 编程 model 以及完整和部分 Java EE。

使用 spring 就无需处理:

并且 Spring 具有一些良好的特性:

依赖注入与控制反转

一个类里面通常会需要调用其它对象的方法或者属性来满足程序中一些需求,最直接的方式就是 new 一个对象,或者调用静态方法/属性来使用。这个过程就已经建立了一种依赖关系了,这种关系必不可免的存在,因为程序就是一个个对象组成,对象对外暴露访问接口供其它对象调用。

当这个中关系越来越过的时候,这种情况,项目会越来越不便于管理。像是中途需要改变需求,那么就需要去找所有可能依赖某个对象的文件将替换。当然目前的 IDEA 很方便,可以一件替换,但这不是项目的重点。

很直接的一个需求,例如说改变数据库驱动,那么首先,就需要到使用 mysql 的类文件中,将其修改,这样很不好。

那么若是使用 spring 的 ioc 容器来进行管理,这个过程往往不需要改变太多的文件,只需要在 spring 的配置文件中,将驱动更换一下,那么整个项目数据库驱动就更换了。当然这是一个理想的情况,因为可能由其它因素需要考虑,不同数据库的特性也不同。

Spring Framework 控制反转(IoC)
component 通过提供一种形式化的方法来解决这个问题,该方法将不同的组件组合成一个可以使用的完全工作的 application。

Spring Framework 将形式化的设计模式编码为 first-class objects,可以将它们集成到 application

Framework Modules

Spring 框架大约由 20 多个模块的特性组成,这些模块分为:Core Container,Data Access/Integration, Web,AOP(Aspect Oriented Programming),Instrumentation,Messaging 和 Test。如图:

spring-overview

核心容器

核心容器由 spring-core,spring-beans,spring-context,spring-context-support和spring-expression(Spring 表达式语言)模块组成。

AOP 和仪表

消息

Spring Framework 4 包含一个spring-messaging 模块

数据 Access/Integration

Data Access/Integration 层由 JDBC,ORM,OXM,JMS 和 Transaction 模块组成。

Web

Web 层由spring-web,spring-webmvc,spring-websocket和spring-webmvc-portlet模块组成。

测试

Spring Framework Artifacts

以下是Spring artifacts 列表:

GroupIdartifactId描述
org.springframeworkspring-aopProxy-based AOP 支持
org.springframeworkspring-aspectsAspectJ 基于方面
org.springframeworkspring-beansBeans 支持,包括 Groovy
org.springframeworkspring-contextApplication context 运行时,包括调度和远程抽象
org.springframeworkspring-context-support支持 classes 将 common third-party libraries 集成到 Spring application context 中
org.springframeworkspring-core核心实用程序,由许多其他 Spring 模块使用
org.springframeworkspring-expressionSpring 表达语言(SpEL)
org.springframeworkspring-instrument用于 JVM 引导的检测代理程序
org.springframeworkspring-instrument-tomcatTomcat 的检测代理
org.springframeworkspring-jdbcJDBC 支持包,包括 DataSource 设置和 JDBC 访问支持
org.springframeworkspring-jmsJMS 支持包,包括 send/receive JMS 消息的辅助 classes
org.springframeworkspring-messaging支持消息传递体系结构和协议
org.springframeworkspring-ormObject/Relational Mapping,包括 JPA 和 Hibernate 支持
org.springframeworkspring-oxmObject/XML 映射
org.springframeworkspring-test支持单元测试和 integration 测试 Spring 组件
org.springframeworkspring-txTransaction 基础设施,包括 DAO 支持和 JCA integration
org.springframeworkspring-web基础 web 支持,包括 web client 和 web-based 远程处理
org.springframeworkspring-webmvcServlet 堆栈的 HTTP-based Model-View-Controller 和 REST endpoints
org.springframeworkspring-webmvc-portlet要在 Portlet 环境中使用的 MVC implementation
org.springframeworkspring-websocketWebSocket 和 SockJS 基础架构,包括 STOMP 消息传递支持