`
chao_t
  • 浏览: 2892 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring总结

阅读更多
简介
传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现WriteOnce及Run Anywhere的承诺。在这种背景下,Spring以“救世主”的身份出现啦。它是开源框架,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能。它致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。

Spring优点
1、轻量级框架,低侵入式设计
2、降低Java EE API的使用难度,简化开发。
3、方便集成各种优秀框架。
4、使用DI机制降低了业务对象替换的复杂性,大大降低了组件之间的耦合,使得程序易于单元测试。
5、AOP技术允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用

Spring的两大核心内容
IOC
IOC (Inversion of Control)是一个重要的面向对象编程的法则,用来削减计算机程序的耦合问题。它还有一个名字叫做依赖注入(Dependency Injection)。简称DI。

spring中的依赖注入DI(dependence injection)共有三种方式:第一种是接口注入(Interface Injection)第二种是get set注入(set/get Injection)第三种是构造器注入(Constructor Injection)
 
1、接口注入
组件需要依赖特定接口的实现,其中的加载接口实现和接口实现的具体对象都是由容器来完成。这样,接口必须依赖容器,这样的组件具有侵入性,降低了重用性。其中如J2EE开发中常用的Context.lookup(ServletContext.getXXX),都是接口注入的表现形式。(这种注入方式不是常用的)

2、getter/setter方式注入
对于需要注入的东西比较明确。符合java的设计规则。更适合java开发人员,使用起来更加自然,更加方便。

3、构造器方式注入
在类加载的时候,就已经注入依赖的组件。但是若是参数多的话,使用起来不方便。

但是后两种注入方式是spring常用的,而第一种接口注入方式不常用。

AOP
AOP为Aspect Oriented Programming的缩写,即面向切面编程(也叫面向方面),是一种可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。

Cross  cutting  concern(横切关注点)
横切关注点是分散在每个模块中,解决同一样的问题的关注点,它是一种独立服务。

Aspect(切面)
切面是关注点的模块化,关注点可能横切多个对象。
个人理解是同一类型关注点的集合。

Join point(连接点)
连接点也就是运用程序执行过程中需要插入切面模块的某一点.连接点主要强调的是一个具体的"点"概念.这个点可以是一个方法、一个属性、构造函数、类静态初始化块,甚至一条语句。
个人理解:某一个应用中有多个关注点,但是我只想在某些关注点上操作,那么这些要操作的关注点就是连接点。

Pointcuts(切入点)
切入点指一个或多个连接点。
个人理解:切入点是某次操作用到的连接点。也就是说JoinPoint是候选点,而pointcut是真正应用的那些点。

Advice(增强或通知)
增强里面定义了切面中的实际逻辑(即实现),比如日志的写入的实际代码,或是安全检查的实际代码。或者说:增强是指在定义好的切入点处,所要执行的程序代码。

一般情况下增强(通知)主要有前增强、后增强、环绕增强三种基本类型。
          前增强(Before advice):是指在连接点之前,先执行增强中的代码 。
          后增强(After advice):是指在连接点执行后,再执行增强中的代码。后增强一般分为连接点正常返回增强及连接点异常返回增强等类型。
          环绕增强(Around advice):是一种功能强大的增强,可以自由改变程序的流程,连接点返回值等。在环绕增强中出除了可以自由添加需要的横切功能以外,还需要负责主动调用连接点(通过proceed)来执行激活连接点的程序。

Weaving(织入)
织入是指把解决横切问题的切面模板,与系统中的其它核心模块通过一定策略或规则组合到一起的过程。在Java领域,主要包括以下三种织入方式:
1、运行时织入:即在JAVA运行的过程中,使用JAVA提供代理来实现织入。         
2、类加载器织入:指通过自定义的类加载器,在虚拟机JVM加载字节码的时候进行织入。
3、编译器织入:使用专门的编译器来编译包括切面模块在内的整个应用程序,在编译的过程中实现织入,这种织入是功能最强大的。

Target object(目标对象)
增强被应用的对象

Proxy(AOP代理)
实际业务对象的代理对象。


AOP和OOP的区别
OOP解决问题的重点在于对具体领域模型的抽象,主要是针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。而AOP解决问题的关键则在于对关注点的抽象,主要是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。

结束语
spring确实是一个比较优秀的框架,以后继续深入研究。
分享到:
评论

相关推荐

    Spring总结和复习

    Spring总结

    Spring总结.xmind

    包含Spring简介,AOP,SpringMVC,集成JDBC,事务,ORM框架,Spring集成知识点总结,以思维导图的形式展示,xmind文件。

    spring总结

    标题中的“spring总结”指的是对Spring框架的全面回顾和总结,Spring是Java开发中最广泛应用的轻量级框架,尤其在企业级应用开发中占据主导地位。这篇总结可能涵盖了Spring的核心特性、工作原理以及最佳实践。 描述...

    Spring总结(四)

    Spring个人总结,基于Annotation注解的方式开发,配置

    spring总结1可以查看

    spring总结1可以查看

    spring 总结md文档

    spring入门笔记

    【狂神说】spring 总结源码 下载

    在这个“狂神说”系列的Spring源码总结中,我们可以深入理解Spring的核心概念和实现机制。 1. **依赖注入(DI)与控制反转(IoC)**:Spring的核心特性是依赖注入,它通过反转应用程序对对象的控制权,使得对象的创建和...

    达内培训内部资料--spring总结精华版

    【总结】 Spring 框架是一个全方位的解决方案,它不仅提供了一种管理对象生命周期和依赖关系的有效方式,还简化了事务处理、持久层操作和Web应用的开发。通过使用Spring,开发者可以构建出更加模块化、易于测试和...

    Spring总结——田超凡.docx

    【Spring 框架概述】 Spring 是一个广泛应用于企业级 Java 开发的开源框架,由 Rod Johnson 创建,旨在简化 Java EE 应用的复杂性。它以轻量级、低侵入式的设计理念,提供了全面的解决方案,涵盖从表现层到业务逻辑...

    spring总结.xmind 思维导图

    Spring5思维导图

    Spring总结——Spring容器、Spring中的IoC

    文章目录Spring总结Spring容器控制反转(IoC)基于XML的IoC Spring总结 Spring容器 什么是Spring容器 从概念上讲:Spring 容器是 Spring框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们...

    ssm之spring总结和整理 java框架

    spring方面介绍 常用注解 生命周期 AOP DI

    spring总结笔记

    ### Spring框架概述与基本配置 #### 一、Spring框架简介 Spring框架是一个开源的企业级Java应用框架,由Rod Johnson创建并由Pivotal Software提供支持。Spring提供了全面的基础架构支持,使得开发者能够专注于应用...

    Spring思维导图

    Spring框架是Java开发中最广泛应用的轻量级框架之一,它以其IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心特性,极大地简化了企业级应用的开发。这份"Spring思维...

Global site tag (gtag.js) - Google Analytics