spring实际上是《expert one-on-one j2ee design and development》一书中所阐述的设计思想的具体实现。在one-on-one一书中,rod johnson 倡导j2ee 实用主义的设计思想,并随书提供了一个初步的开发框架实现(interface21 开发包)。而spring 正是这一思想的更全面和具体的体现。rod johnson在interface21 开发包的基础之上,进行了进一步的改造和扩充,使其发展为一个更加开放、清晰、全面、高效的开发框架。
spring是一个开源框架,由rod johnson创建并且在他的著作《j2ee设计开发编程指南》里进行了描述。它是为了解决企业应用开发的复杂性而创建的。spring使使用基本的 javabeans来完成以前只可能由ejb完成的事情变得可能了。然而,spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何java应用都可以从spring中受益。
简单来说,spring是一个轻量的控制反转和面向切面的容器框架。当然,这个描述有点过于简单。但它的确概括出了spring是做什么的。为了更好地理解spring,让我们分析一下这个描述:
1、轻量
从大小与开销两方面而言spring都是轻量的。完整的spring框架可以在一个大小只有1mb多的jar文件里发布。并且spring所需的处理开销也是微不足道的。此外,spring是非侵入式的:典型地,spring应用中的对象不依赖于轻量,从大小与开销两方面而言spring都是轻量的。完整的spring框架可以在一个大小只有1mb多的jar文件里发布。并且spring所需的处理开销也是微不足道的。此外,spring是非侵入式的:典型地,spring应用中的对象不依赖于spring的特定类。
2、控制反转
spring通过一种称作控制反转(ioc)的技术促进了松耦合。当应用了ioc,对象被动地传递它们的依赖而不是自己创建或者查找依赖对象。你可以认为ioc与jndi相反??不是对象从容器中查找依赖,而是容器在对象初始化时不等被请求就将依赖传递给它。
3、面向切面
spring包含对面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统服务(例如审计与事物管理)进行内聚性的开发。应用对象只做它们应该做的,完成业务逻辑,仅此而已。它们并不负责(甚至是意识)其它的系统关注点,例如日志或事物支持。
4、容器
spring包含和管理应用对象的配置和生命周期,在这个意义上它是一种容器。你可以配置你的每个bean如何被创建?基于一个配置原形为你的bean 创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,spring不应该被混同于传统的重量的ejb容器,它们经常是庞大与笨重的,难以使用。
框架:spring是由简单的组件配置和组合复杂的应用成为可能。在spring中,应用对象被声明式地组合,典型地是在一个xml文件里。spring也提供了很多基础功能(事务管理、持久性框架集成等等),将应用逻辑的开发留给了你。
所有spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为spring中的各种子框架提供了基础。
分享到:
相关推荐
Spring Cloud 建立在 Spring Boot 之上,利用其自动化配置的能力。 - **Spring Cloud 扩展功能**:相比于 Spring Boot,Spring Cloud 更加专注于全局的服务治理框架,包括服务发现、配置管理等高级特性。 - **依赖...
1. **Spring简介**:介绍Spring的基本概念和历史背景,以及在Java EE环境中的作用。 2. **Spring核心容器**:详细讲解Bean工厂和ApplicationContext,以及如何使用XML和Java配置来创建和管理Bean。 3. **依赖注入*...
本篇文章将深入探讨两种主要的作用域:singleton和prototype,并通过实例分析其用法和注意事项。 首先,`singleton`是Spring默认的作用域,意味着当Spring容器初始化时,对于每个具有`singleton`作用域的Bean,它只...
##### 1.3 Spring Framework的特点 - **非侵入式**:使用Spring Framework开发应用程序时,Spring对应用程序本身的结构影响非常小,可以做到对领域模型的零污染,同时通过简单的注解就能实现对功能性组件的管理,...
Spring 框架的特点: 1. 方便解耦,简化开发:通过 Spring 提供的 IoC 容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度程序耦合。 2. AOP 编程的支持:通过 Spring 的 AOP 功能,方便...
13.1.2. Spring Web MVC框架的特点 13.2. DispatcherServlet 13.3. 控制器 13.3.1. AbstractController 和 WebContentGenerator 13.3.2. 其它的简单控制器 13.3.3. MultiActionController 13.3.4. 命令控制器 13.4. ...
- **简介**:Spring Boot是Spring的一个衍生项目,旨在简化Spring应用的初始搭建以及开发过程。 - **特性**: - 自动配置:通过添加特定的依赖包,Spring Boot可以自动配置相关的组件。 - 嵌入式服务器:内置...
Spring作为企业级应用开发中的重要组件,其深入理解和熟练运用是面试过程中的常见考察点。本宝典将围绕Spring的核心概念、关键特性和实际应用场景,通过一系列精选的面试题目,帮助求职者系统地复习和准备Spring相关...
1. **无缝整合**:Spring框架的一个显著特点是能够将不同的技术栈和服务层紧密地结合在一起,使得整体架构更为清晰和高效。它通过依赖注入机制实现了组件之间的解耦,同时通过面向切面编程增强了系统的可扩展性和...
### Spring笔试题知识点详解 #### 一、依赖注入与控制反转 **知识点1:依赖注入的概念...通过以上分析,我们可以看到Spring框架的核心设计理念以及其实现机制。了解这些知识点对于深入理解和应用Spring框架非常重要。
本文将详细介绍Spring中不同作用域的Bean,包括它们的特点、应用场景以及配置方法。 #### 二、作用域概述 Spring框架提供了多种作用域来适应不同的应用场景。这些作用域包括: 1. **Singleton** 2. **Prototype**...
关于Spring Boot的起源,通常提到的一个功能请求,即Spring Framework的一个特性(链接为***),经常被引用为Spring Boot的催化剂,并且确实是在启动Spring Boot工作所需的动力中起到了重要的作用。尽管如此,这个...
通过本教程的学习,您不仅了解了Spring框架的基本概念和特点,还掌握了如何利用Spring容器管理和配置Bean,以及如何实现依赖注入的基本方法。这对于构建高效、可维护的企业级应用至关重要。接下来,您可以进一步深入...
- **面向切面编程**:这是一种编程范式,其主要特点是通过“横切”的方式将那些横跨系统多个模块的公共行为封装在一起,形成一个可重用的模块——即“切面”(Aspect)。 - **面向切面编程的作用**:将非业务逻辑...
对于寻求一体化架构的开发者,Spring替代方案如Grails,因其难以置信的能力和生产率而倍受Groovy开发者的欢迎。Java开发人员若追求快速、轻量级的应用构建,Spring Roo将是一个理想的选择。它的特点在于能快速带领...
- **Spring Cloud Config客户端**:说明了如何配置客户端以监听来自Spring Cloud Bus的通知,并自动刷新其配置。 #### Spring Cloud Netflix - **服务发现:Eureka客户端**:介绍了如何集成Netflix Eureka客户端...
SpringCloud是一款基于Spring Boot实现的云应用开发工具集,它为开发者提供了在分布式系统(如...在开发过程中,你需要深入理解每个组件的作用,以及如何根据实际需求进行定制和配置,这将对你未来的职业生涯大有裨益。
从给定的文件信息来看,标题和描述都指向了“Spring Framework 开发参考手册(中文)”,这表明文档是关于Spring框架的详细开发指南,专为中文读者设计。Spring框架是一个开源的应用框架,用于简化Java应用程序的开发...
本文将深入探讨`spring-beans-3.0.xsd`和`spring-beans-3.1.xsd`这两个版本的变更,以及它们在Spring框架中的作用。 首先,`spring-beans-3.0.xsd`是Spring 3.0版本中的beans配置文件,它定义了一系列元素和属性,...
Spring框架是Java开发中的一个核心库,以其模块化、松耦合和面向切面编程(AOP)的特点闻名。在本篇文章中,我们将深入探讨Spring 3.0.6版本的相关知识点,这是一个广泛使用的版本,提供了许多关键特性和改进。 **1...