文章摘自:http://blog.163.com/flm_llx/blog/static/27120712200791862322809/
学习Spring前必须了解的知识点
轻量级的形容是相对于一些重量级的容器(如EJB容器)来说的,Spring的核心包在文件容量上只有不到1MB的大小,而使用Spring核心包所需要的资源负担也是很小的,您甚至可以在小型设备中使用Spring的核心包。
框架原来的用意是提供一个架构的实现,让开发人员可以在基于框架的基础上,快速地开发出遵循架构的所需的应用程序,然而有些框架一旦被使用,应用程序就与框架发生了依赖,例如大量使用了框架的API,或直接继承API的某些类型等,都会使应用程序组件与框架发生依赖,而无法从框架中独立出来,更别说当中的组件可以直接重用到另一个应用程序之中。
Spring的目标之一是实现一个非侵入性(No intrusive)框架,希望让应用程序几乎感受不到框架的存在,减低应用程序在框架移植时的负担,进一步增加应用程序组件的可重用性(Reusability),简单地说,使用Spring的话,应用程序中某些组件可以直接拿到另一个应用程序或框架之中直接使用。
Spring提供容器功能,容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype方式或Singleton方式)、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系。
换个更直白的说明方式:容器是一个Java所编写的程序,原先必须自行编写的程序以管理对象关系,现在容器都会自动帮您作好。
- IoC(Inversion of COntrol)
Spring最重要的核心概念是Inversion of Control,中文常译为“控制反转”,更具体的另一个名词是Dependency Injection,中文常译为“依赖注入”;使用Spring,您不必自己在程序代码中维护对象的依赖关系,只需要在配置文件中加以设定,Spring核心容器会自动根据配置将依赖注入指定的对象。
- AOP(Aspect-oriented programming)
Spring最被人重视的另一方面是支持AOP(Aspect-oriented programming)的实现,然而AOP框架只是Spring支持的一个子框架,说Spring框架是AOP框架并不是一个适当的描述,人们对与AOP的关注反映至Spring上,使得人们对于Spring的关注集中在它的AOP框架上,虽然有所误解,但也突显了Spring的另一个令人关注的特点。
举个实际的例子来说明AOP的功能之一,假设您有个日志(Logging)的需求,您可以无须修改任何一行程序代码,就可以将这个需求加入至原先的应用程序之中,而若您愿意,也可以在不修改任何程序的情况下,将这个日志功能移除。
Spring的IoC容器功能与AOP功能的实现是其重心所在,在Spring下实现了持久层、MVC Web框架以及各种企业服务的API封装,它们的实现有些依重于Spring的IoC容器与AOP功能,Spring的这些子框架或封装的API功能彼此可以独立,也可以结合其他的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案。
Spring提供对持久层的整合,如对JDBC的使用加以封装与简化,提供事务(Transaction)管理功能,对于O/R Mapping工具(HIbernate、iBATIS)的整合,Spring也提供了解决的方案。
Spring也提供MVC Web框架的解决方案,使用Spring Web框架的好处是可以善用IoC与AOP的功能,您甚至可以轻松地替换使用不同的View层技术,例如使用JSP、结合Tiles、使用PDF作为展现给使用者的画面技术。
也可以将自己所熟悉的Web框架与Spring整合,例如Struts、JSF等,都可以与Spring整合,而适应于当前所进行的应用程序。
对于一些服务,例如JNDI、Mail、任务计划(Scheduling)、远程(Remoting)等,Spring不直接提供实现,而是采取抽象层方式对这些服务进行封装,让这些服务在使用时可以有一致的使用模型,并且在使用上更为简化。
分享到:
相关推荐
Spring 框架是Java开发中的一...通过以上知识点的学习和实践,你可以深入了解Spring框架的工作原理,熟练掌握其配置和使用方法,从而在实际项目开发中得心应手。在遇到问题时,也能迅速定位并解决问题,提高开发效率。
Spring 框架是 Java 开发中的核心框架之一,它为构建企业级应用程序提供了全面的解决方案。本资源包含了 Spring 框架多个关键模块的代码示例,旨在...学习并掌握这些知识点对于提升 Java 开发者的技能水平至关重要。
在介绍Struts2时,我们需要了解以下几个关键知识点: 1. **MVC模式**:MVC是一种将业务逻辑、数据和用户界面分离的设计模式,Struts2作为表现层框架,主要处理控制器(Controller)部分。 2. **Web应用的三层结构**...
本学习提纲旨在为初学者提供一份详尽的Spring 2.0学习指南,帮助他们系统地掌握这个框架的核心概念和技术。 一、Spring概述 1. Spring框架介绍:理解Spring的起源,目标及主要功能,包括简化Java EE开发、提供容器...
在学习Spring的过程中,理解IoC和DI原理、熟练使用Spring MVC以及掌握AOP是关键。随着学习的深入,你还可以探索Spring Boot、Spring Cloud等扩展技术,它们进一步简化了Spring应用的开发和部署。 总的来说,"Spring...
Spring框架是Java开发中广泛应用的轻量级...这份"Spring框架学习笔记"会深入探讨以上各个知识点,通过PDF文档的形式,提供详细的讲解和实例,对于想要深入了解和学习Spring框架的人来说,无疑是一份实用的学习资源。
### SpringCloud微服务预研知识点整理 #### 一、微服务概述 微服务架构是一种将单个应用程序开发成一套小型服务的方法,每项服务都运行在其独立的进程中,并且使用轻量级通信机制(通常是HTTP资源API)进行交互。...
这份"Spring学习笔记+学习源码.zip"资源包含了深入学习Spring及其相关技术的知识点,以及实践代码,对提升Spring技能将大有裨益。 首先,我们来详细讨论Spring框架的主要组件和功能: 1. **依赖注入(Dependency ...
学习Spring框架可以帮助开发者构建高效、可测试和可管理的代码。 #### Spring框架版本 Spring经历了多个版本的迭代,每个新版本都会带来改进和新特性。了解Spring不同版本的区别对于保持技术栈的更新和应用的最佳...
学习这个资源,你将掌握以下关键知识点: - 如何使用Spring Cloud Alibaba搭建微服务架构。 - Nacos的配置和服务发现机制。 - Sentinel的流量控制和熔断策略配置。 - Redis在SSO中的应用场景和操作。 - Spring ...
本资源“springcloud知识点脑图demo全家桶菜鸟入门”显然是为了帮助初学者掌握Spring Cloud的基础知识和实践应用。这里我们将深入探讨其中提到的关键组件——Eureka、OpenFeign、Redis以及Nacos。 首先,Eureka是...
在这个"Spring框架学习源码"中,我们将会探讨以下几个关键知识点: 1. **SpringBoot**:SpringBoot简化了Spring应用程序的初始搭建以及开发过程。它内置了Tomcat服务器,提供了一种默认的配置,使得开发者可以快速...
阅读《Spring5框架课堂笔记.pdf》时,建议按照上述知识点进行深入学习,结合实际项目实践,以巩固理论知识。同时,不断关注Spring社区的最新动态和技术更新,保持学习的前沿性。在实践中不断提升,你将能充分利用...
学习Spring的过程中,了解并实践这些关键知识点是至关重要的。结合图片截图,可以更直观地理解Spring的组件和工作原理,有助于快速掌握和应用Spring框架。同时,持续关注Spring的更新日志,可以确保我们的技能...
学习Spring和Maven时,可能会遇到各种挑战,如理解依赖注入的概念、配置Spring的XML或Java配置、管理复杂的项目依赖、掌握Maven的生命周期和插件等,但只要持续学习,不断实践,就一定能够克服困难,顺利掌握这两个...
`whatisjava.spring.06`可能包含有关Spring配置文件、Bean定义和自动装配的知识点。 2. **AOP概念**:面向切面编程是Spring的重要特性,它允许将关注点(如日志、事务管理)与业务逻辑分离。课程可能会讲解如何定义...
### Spring学习笔记知识点详解 #### 一、Spring框架概述 **Spring** 是一个开源的、分层的企业级应用开发框架,旨在简化Java EE应用程序的开发。它的主要目标是提高开发效率,减少耦合度,并提供一种更为简洁的...
在这个 Spring Cloud 视频教程中,你可以期待学习到以下核心知识点: 1. **Spring Cloud 基础**: - 了解 Spring Cloud 的发展历程和核心组件。 - 学习 Spring Boot 的基本概念和优势,它是 Spring Cloud 的基础...
通过深入学习这些知识点,并结合提供的源码笔记,你可以更好地理解 Spring MVC 的设计模式和最佳实践,从而更高效地开发 Web 应用。此外,了解如何利用 Spring Boot 进行自动化配置和快速开发也是现代 Web 开发的...
这个压缩包“Spring知识点提炼编程开发技术共16页.pdf.zip”显然包含了一份详细整理的Spring框架的学习资料,共计16页,旨在帮助开发者深入理解并掌握Spring的核心概念和技术。 首先,我们从Spring的基本概念开始。...