- 浏览: 62523 次
- 性别:
- 来自: 应县
最新评论
-
fc19861011:
请问你解决了吗?poi修改word中生成的图表数据找了好久没发 ...
jacob 怎么改变 word图表的数据呢? -
longgol:
GridPanel中mouseover事件获取列index
...
GridPanel中mouseover事件获取行index
轻量级(Lightweight)
轻量级的形容是相对于一些重量级的容器(如EJB容器)来说的,Spring的核心包在文件容量上只有不到1MB的大小,而使用Spring核心包所需要的资源负担也是很小的,您甚至可以在小型设备中使用Spring的核心包。
非入侵性(No intrusive)
框架原来的用意是提供一个架构的实现,让开发人员可以在基于框架的基础上,快速地开发出遵循架构的所需的应用程序,然而有些框架一旦被使用,应用程序就与框架发生了依赖,例如大量使用了框架的API,或直接继承API的某些类型等,都会使应用程序组件与框架发生依赖,而无法从框架中独立出来,更别说当中的组件可以直接重用到另一个应用程序之中。
Spring的目标之一是实现一个非侵入性(No intrusive)框架,希望让应用程序几乎感受不到框架的存在,减低应用程序在框架移植时的负担,进一步增加应用程序组件的可重用性(Reusability),简单地说,使用Spring的话,应用程序中某些组件可以直接拿到另一个应用程序或框架之中直接使用。
容器(Container)
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也提供了解决的方案。
Web框架
Spring也提供MVC Web框架的解决方案,使用Spring Web框架的好处是可以善用IoC与AOP的功能,您甚至可以轻松地替换使用不同的View层技术,例如使用JSP、结合Tiles、使用PDF作为展现给使用者的画面技术。
也可以将自己所熟悉的Web框架与Spring整合,例如Struts、JSF等,都可以与Spring整合,而适应于当前所进行的应用程序。
其他企业服务的封装
对于一些服务,例如JNDI、Mail、任务计划(Scheduling)、远程(Remoting)等,Spring不直接提供实现,而是采取抽象层方式对这些服务进行封装,让这些服务在使用时可以有一致的使用模型,并且在使用上更为简化。
轻量级的形容是相对于一些重量级的容器(如EJB容器)来说的,Spring的核心包在文件容量上只有不到1MB的大小,而使用Spring核心包所需要的资源负担也是很小的,您甚至可以在小型设备中使用Spring的核心包。
非入侵性(No intrusive)
框架原来的用意是提供一个架构的实现,让开发人员可以在基于框架的基础上,快速地开发出遵循架构的所需的应用程序,然而有些框架一旦被使用,应用程序就与框架发生了依赖,例如大量使用了框架的API,或直接继承API的某些类型等,都会使应用程序组件与框架发生依赖,而无法从框架中独立出来,更别说当中的组件可以直接重用到另一个应用程序之中。
Spring的目标之一是实现一个非侵入性(No intrusive)框架,希望让应用程序几乎感受不到框架的存在,减低应用程序在框架移植时的负担,进一步增加应用程序组件的可重用性(Reusability),简单地说,使用Spring的话,应用程序中某些组件可以直接拿到另一个应用程序或框架之中直接使用。
容器(Container)
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也提供了解决的方案。
Web框架
Spring也提供MVC Web框架的解决方案,使用Spring Web框架的好处是可以善用IoC与AOP的功能,您甚至可以轻松地替换使用不同的View层技术,例如使用JSP、结合Tiles、使用PDF作为展现给使用者的画面技术。
也可以将自己所熟悉的Web框架与Spring整合,例如Struts、JSF等,都可以与Spring整合,而适应于当前所进行的应用程序。
其他企业服务的封装
对于一些服务,例如JNDI、Mail、任务计划(Scheduling)、远程(Remoting)等,Spring不直接提供实现,而是采取抽象层方式对这些服务进行封装,让这些服务在使用时可以有一致的使用模型,并且在使用上更为简化。
发表评论
-
Tomcat集群与负载均衡
2011-01-26 16:00 612在单一的服务器上执行W ... -
xalan-2.7.0.jar下载地址
2011-01-26 15:59 3203xalan-2.7.0.jar下载地址:http://svn. ... -
provider org.apache.xalan.processor.TransformerFactoryImpl not found
2011-01-26 15:58 984完整的Exception: Exception startin ... -
Apache与Tomcat整合的简单方法
2011-01-26 15:57 6961、准备,下载需要的文件。这里假定你已经正确安装配置好了JDK ... -
(转)Tomcat源码学习(一)
2011-01-26 15:57 619Tomcat源码学习(一) http://carllgc.bl ... -
Tomat源码学习(二) [图片]
2011-01-26 15:55 746Tomat源码学习(二) Tomat6的整体架构 在上篇文 ... -
Tomat6架构探讨(续)
2011-01-26 15:54 737Tomat源码学习(二) 下面,我们重点针对Catalin ... -
JNDI
2011-01-26 15:49 739Java术语 英文全称是:Java ... -
JSP内建对象- - 转
2011-01-26 15:48 589① out - javax.servlet.jsp.jspWr ... -
全面理解String(JAVA复习)- -
2011-01-26 15:48 6101. 首先String不属 ... -
初学者如何开发出高质量的J2EE系统 (转载)
2011-01-26 15:47 725J2EE学习者越来越多,J2E ... -
关于JSP中的taglib uri
2011-01-26 15:47 1025自定义标签在jsp中应用是需要声明标签库,有下面两种方式: 1 ... -
context-param和init-param区别
2011-01-26 15:46 478web.xml里面可以定义两种参数: (1)applicati ... -
javax.servlet.Filter运用
2011-01-26 15:46 719Servlets Filter 是Servlet 2.3 规范 ... -
javax.servlet.FilterChain
2011-01-26 15:45 995javax.servlet Interface Filter ... -
引用 五个有用的过滤器 Filter
2011-01-26 15:45 644引用 xyz 的 五个有用的过滤器 Filter 来源:htt ... -
spring:简单的属性参考
2011-01-26 15:43 574在定义文件(XML配置文件)中定义Bean时,可以直接指定一个 ... -
spring:Inversion of Control具体实现【资料搜集】
2011-01-26 15:42 632IoC(Inversion of Control)控制反转的具 ... -
struts2:主题: Interceptor在Struts2中的应用... [图片]
2011-01-26 15:41 711Interceptor(拦截器)将Action共用的行为独立出 ... -
struts2配置文件介绍
2011-01-26 15:40 666一、Struts2配置文件 Struts2相关的配置文件有w ...
相关推荐
通常,学习Spring Cloud源码可以从以下几个方面入手: - **核心类和接口**:了解Spring Cloud中的关键类和接口的设计思路。 - **依赖注入**:学习如何通过依赖注入管理组件和服务。 - **自动化配置**:理解Spring ...
在Spring框架中,主要包含以下几个核心模块: 1. **Spring Core**:这是Spring框架的基础,提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的支持。DI允许我们解耦...
本书主要涵盖了以下几个关键知识点: 1. **微服务架构基础**:首先,书中会介绍微服务架构的概念和优势,包括可部署性、可扩展性、容错性和技术多样性等。此外,还会讨论实施微服务架构可能面临的挑战,如服务发现...
在学习和使用 Spring Boot 进行分布式开发的过程中,你需要掌握以下关键知识点: - **Spring Initializr**:用于初始化 Spring Boot 项目,可以快速创建项目结构。 - **Maven 或 Gradle**:Spring Boot 项目通常...
通过深入理解Spring Boot的源码,我们可以更深入地了解其工作原理,提升开发效率和代码质量。 Spring Boot的源码主要分为以下几个核心模块: 1. **自动配置(Auto Configuration)**: Spring Boot的自动配置是其...
根据给定文件的信息,我们可以提炼出以下几个重要的知识点: ### 一、SpringCloud简介与核心组件 #### 1.1 SpringCloud概述 SpringCloud是一套基于Spring Boot实现的微服务云应用开发工具集,它提供了在分布式系统...
在本教程中,我们将深入探讨以下几个核心知识点: 1. **Spring Boot基础**:Spring Boot简化了Spring应用程序的开发,通过默认配置和起步依赖,使得创建独立的、生产级别的基于Spring的应用变得快速且简单。我们...
读者将了解如何使用Spring AOP来分离关注点,实现诸如日志记录、性能监控、安全控制等横切关注点的模块化。 ### 第7章:更多的Spring AOP和注解 在此章节中,作者进一步探讨了Spring AOP的高级特性,如自定义切点...
AOP在Spring.NET中的实现主要包含以下几个方面: 1. **切面**: 切面是AOP的核心,它封装了特定的关注点,如日志、事务。在Spring.NET中,切面可以是类或接口。 2. **通知(Advice)**: 通知是在特定连接点(Join ...
### Spring MVC 教程知识点详解 #### Spring Web Flow 2.0 技术要点与实践应用 **一、Spring Web Flow 2.0 概览** - **Spring Web Flow** 是Spring框架的一个子项目,专注于解决多请求之间的交互问题,即用户与...
在整合SpringCloud时,需要注意以下几点: - **版本兼容性**:确保所有SpringCloud组件版本兼容,避免因版本不一致引发的问题。 - **服务启动顺序**:一般先启动Eureka Server,再启动其他依赖于它的服务。 - **...
在Spring框架中,AOP主要用来处理日志、事务管理等横切关注点,它使得这些通用功能可以被模块化,而不需要侵入业务代码。 2. **spring-context-4.2.4.RELEASE.jar, spring-core-4.2.4.RELEASE.jar, spring-web-...
关于Spring Boot的开发,书中可能会涵盖以下几个关键点: 1. **起步驱动配置**:理解如何通过@SpringBootApplication注解启动Spring Boot应用,并了解其中包含的注解如@ComponentScan、@EnableAutoConfiguration和@...
3. **Spring AOP**:面向切面编程允许我们定义横切关注点,比如日志、事务管理,然后将这些关注点与业务代码分离。Spring AOP提供了实现AOP的两种方式:基于代理和基于注解。 4. **Spring Context**:建立在Core和...
这里有几个关键点需要注意: - `delay`属性表示任务启动后延迟多久开始执行首次任务(单位为毫秒),这里设置为3000毫秒,即3秒后开始执行。 - `period`属性表示两次任务之间的间隔时间(单位为毫秒)。本例中...
在集成GRPC和Spring Cloud的过程中,主要涉及以下几个关键知识点: 1. **ProtoBuf(Protocol Buffers)**:ProtoBuf是Google开发的一种数据序列化协议,它允许定义数据结构,然后生成相应的代码,用于读写这种结构...
集成Spring Boot Admin Server的步骤主要包括以下几点: 1. **配置Admin Server**:在你的Spring Boot Admin Server项目中,需要配置服务器的相关属性,如绑定的端口、注册到Admin Server的应用地址等,通常这些...
在"Spring Boot"这个主题下,我们主要会探讨以下几个关键知识点: 1. **起步依赖(Starter Dependencies)**: Spring Boot的核心特性之一就是起步依赖,它们是一组预定义的Maven或Gradle依赖集合,可以帮助开发者...
通过这份资源,开发者不仅可以学习到 Spring Boot 的基础,还能了解到其在企业级应用中的高级特性和实践技巧,从而提升开发效率和项目质量。配合源码分析,更有利于理解框架的工作原理,提升解决问题的能力。
2.0.4版本的《Spring Boot参考指南》涵盖了以下几个核心知识点: 1. **起步依赖**:Spring Boot通过“起步依赖”提供了一种简单方式来包含所需的库,例如数据访问、Web开发、消息处理等。 2. **自动配置**:Spring...