`

Spring工作原理

阅读更多
内部最核心的就是IOC了, 
动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射 
反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置 
文件来动态的创建对象,和调用对象里的方法的 。 
  Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是 
在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过 
配置类达到的。 
  Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明 
管理的(Spring根据这些配置 内部通过反射去动态的组装对象) 
  要记住:Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。 
Spring里用的最经典的一个设计模式就是:模板方法模式。(这里我都不介绍了,是一个很常用的设计模式) 
  Spring里的配置是很多的,很难都记住,但是Spring里的精华也无非就是以上的两点,把以上两点跟理解了 也就基本上掌握了Spring.

Spring AOP与IOC
一、 IoC(Inversion of control): 控制反转 
1、IoC: 
概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系 
核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean 
二、AOP(Aspect-Oriented Programming): 面向方面编程 
1、 代理的两种方式: 
静态代理: 
 针对每个具体类分别编写代理类; 
 针对一个接口编写一个代理类; 
动态代理: 
针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类
Spring 优缺点

它是一个开源的项目,而且目前非常活跃;它基于IoC(Inversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的 接口,采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment,等等
优点 
a. Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的 API特制的framework,Spring致力于解决剩下的问题。 
b. Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。 
c. 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个魔法般的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性。Inversion of Control的使用(在下面讨论)帮助完成了这种简化。 
d. 通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。 
e. Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。 
f. 使用Spring构建的应用程序易于单元测试。 
g. Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。 
h. Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提供声明性事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。 
i. Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。 
Spring确实使你能通过最简单可行的解决办法来解决你的问题。而这是有有很大价值的。

缺点:jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器
分享到:
评论

相关推荐

    spring工作原理

    Spring 工作原理概述 Spring 是一个基于 Java 的开源框架,主要提供了一个轻量级的容器来管理应用程序中的对象关系。Spring 的工作原理可以分为两个核心部分:IoC(Inversion of Control,控制反转)和 AOP(Aspect...

    Spring工作原理简单探索

    Spring工作原理简单探索 Spring 工作原理简单探索是一篇关于 Spring 框架工作原理的文章,涵盖了 Spring AOP 和 IOC 等核心概念。本文将通过对 Spring 工作原理的探索,帮助读者深入了解 Spring 框架的设计理念和...

    详解JSP 中Spring工作原理及其作用_.docx

    Spring 框架在 JSP 中的工作原理及其作用 Spring 框架是一个流行的 Java 框架,广泛应用于 Web 应用程序开发。它提供了一种简洁、灵活、可重用的方式来开发基于 Java 的应用程序。本文将详解 Spring 框架在 JSP 中...

    Spring框架+Spring工作原理+AOP面向切面编程+JDK代理+Cglib代理

    ### Spring框架概述与核心原理 #### 一、Spring框架简介 Spring框架是一个广泛使用的开源Java平台,用于构建高质量的企业级应用程序。它最初由Rod Johnson在2004年创建,旨在简化企业级Java应用程序的开发过程。...

    Hibernate、Spring和Struts工作原理及使用理由

    【标题】:“Hibernate、Spring和Struts工作原理及使用理由” 【内容】: Hibernate是一个流行的Java持久化框架,它的核心工作原理主要包括以下步骤: 1. **读取并解析配置文件**:Hibernate通过读取hibernate....

    springIoc实现原理

    **Spring Ioc 实现原理详解** Spring Ioc(Inversion of Control,控制反转)是Spring框架的核心特性之一,它改变了传统应用程序中对象的创建和管理方式。在传统的软件设计中,对象的创建和依赖关系的维护通常由...

    Spring+Hibernate+Struts工作原理

    【Spring工作原理】 Spring框架的核心概念是依赖注入(Dependency Injection,简称DI),也被称为控制反转(Inversion of Control,简称IOC)。IOC使得开发者无需在代码中手动创建对象,而是通过配置文件或注解来...

    Spring框架原理,Spring的demo示意源码,供大家学习参考

    这个压缩包包含了关于Spring框架的基本介绍以及一些示例源码,非常适合初学者或者需要深入理解Spring工作原理的开发者进行学习。 首先,我们来详细了解Spring的核心特性: 1. **依赖注入(Dependency Injection, ...

    详解JSP 中Spring工作原理及其作用

    【Spring工作原理详解】 在JSP中,Spring框架作为一个强大的轻量级应用框架,主要扮演着管理和协调应用程序组件的角色。其工作流程主要包括以下几个步骤: 1. **DispatcherServlet**:所有HTTP请求首先都会被...

    Hibernate、Spring和Struts工作原理及使用理由.txt

    ### Hibernate、Spring和Struts工作原理及使用理由 #### Hibernate工作原理及使用理由 **1. Hibernate概述** Hibernate是一个开放源代码的ORM(Object-Relational Mapping)框架,用于简化数据库操作,它允许将...

    springsecurity原理流程图.pdf

    Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架,它是安全领域中Spring生态系统的一部分。Spring Security旨在为Java应用程序提供一个全面的安全解决方案,尤其适用于企业级应用场景。它主要...

    Spring Multipart工作原理(文件上传到服务器)

    Spring Multipart工作原理详解——文件上传到服务器 在Web应用中,文件上传功能是常见的需求之一,Spring框架提供了对文件上传的支持,主要基于MultipartFile接口。本文将深入探讨Spring Multipart的工作原理,以及...

    spring 框架源码 版本:5.2.9.RELEASE

    这个压缩包包含了Spring框架的源码,非常适合那些希望深入理解Spring工作原理、学习框架设计思想或进行二次开发的同学们。 首先,Spring框架的核心是依赖注入(Dependency Injection,DI),它允许组件之间松耦合,...

    Struts + Spring + Hibernate工作原理解析

    Struts、Spring和Hibernate是Java开发中非常著名的三个开源框架,它们共同构成了经典的"SSH...通过阅读《Struts + Spring + Hibernate工作原理解析》文档,你可以更系统地掌握这些知识,为你的项目开发带来极大的帮助。

    Spring_in_Action_4.pdf-第四版-英文原版

    6. **源码分析**:提供的第三版源码,可以帮助读者深入理解Spring框架的工作原理,通过阅读和学习源码,可以提升对Spring的理解和使用能力。 7. **非扫描版PDF**:这意味着书中的文本是可编辑的,这对于开发者来说...

    spring-3.1.1源码和架包

    标题中的"spring-3.1.1源码"指的是Spring框架3.1.1版本的源代码,这是理解Spring工作原理、学习其设计模式以及进行定制化开发的重要资源。源码分析可以帮助开发者深入理解IoC(Inversion of Control,控制反转)和...

    Spring框架源码的下载

    首先,下载Spring框架源码是深入理解其工作原理的关键步骤。通过阅读源码,开发者可以了解到Spring如何实现其核心功能,如IoC(Inversion of Control)容器和DI(Dependency Injection),这有助于提高编程技巧和...

    spring mvc 工作原理

    spring mvc 工作原理

    Spring事务原理、Spring事务配置的五种方式

    Spring事务原理和配置 Spring事务原理是指Spring框架中的一种机制,用于管理事务,并提供了多种配置方式。事务是指一系列的操作,作为一个整体执行,如果其中某个操作失败,整个事务将回滚。Spring事务原理围绕着两...

Global site tag (gtag.js) - Google Analytics