首页 编程设计 spring是什么意思

spring是什么意思

spring是什么意思

Springframework就是我们平时说的Spring框架,我们将Springframework简称为Spring框架。Spring框架是全家桶内其它框架的基础和核心,下面让我们来认识Spring框架吧。

Spring是目前主流的JavaWeb开发框架,是Java世界最为成功的框架。该框架是一个轻量级的开源框架,具有很高的凝聚力和吸引力。

Spring由RodJohnson创立,2004年发布了Spring框架的第一版,其目的是用于简化企业级应用程序开发的难度和周期。

spring是什么意思

Spring是分层的JavaSE/EE一站式轻量级开源框架,以IoC(InverseofControl,控制反转)和AOP(AspectOrientedProgramming,面向切面编程)为内核。

IoC指的是将对象的创建权交给Spring去创建。使用Spring之前,对象的创建都是由我们使用new创建,而使用Spring之后,对象的创建都交给了Spring框架。AOP用来封装多个类的公共行为,将那些与业务无关,却为业务模块所共同调用的逻辑封装起来,减少系统的重复代码,降低模块间的耦合度。另外,AOP还解决一些系统层面上的问题,比如日志、事务、权限等。

在Spring中,认为一切Java类都是资源,而资源都是类的实例对象(Bean),容纳并管理这些Bean的是Spring所提供的IoC容器,所以Spring是一种基于Bean的编程,它深刻地改变着Java开发世界,使用基本的JavaBean来完成以前只有EJB才能完成的工作,使得很多复杂的代码变得优雅和简洁,避免了EJB臃肿、低效的开发模式,极大的方便项目的后期维护、升级和扩展。迅速地取代EJB成为了实际的开发标准。

在实际开发中,服务器端通常采用三层体系架构,分别为表现层(web)、业务逻辑层(service)、持久层(dao)。

Spring致力于JavaEE应用各层的解决方案,对每一层都提供了技术支持。在表现层提供了与SpringMVC、Struts2框架的整合,在业务逻辑层可以管理事务和记录日志等,在持久层可以整合MyBatis、Hibernate和JdbcTemplate等技术。这就充分体现出Spring是一个全面的解决方案,对于已经有较好解决方案的领域,Spring绝不做重复的事情。

从某个程度上来看,Spring框架充当了黏合剂和润滑剂的角色,能够将相应的JavaWeb系统柔顺地整合起来,并让它们更易使用。同时其本身还提供了声明式事务等企业级开发不可或缺的功能。

从设计上看,Spring框架给予了Java程序员更高的自由度,对业界的常见问题也提供了良好的解决方案,因此,在开源社区受到了广泛的欢迎,并且被大部分公司作为Java项目开发的首选框架。

Spring作为实现JavaEE的一个全方位应用程序框架,为开发企业级应用提供了一个健壮、高效的解决方案。它不仅可以应用于服务器端开发,也可应用于任何Java应用的开发。

Spring框架具有以下几个特点。
1)方便解耦,简化开发

Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给Spring管理。

2)方便集成各种优秀框架

Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如Struts2、Hibernate、MyBatis等)的直接支持。

3)降低JavaEEAPI的使用难度

Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等)都提供了封装,使这些API应用的难度大大降低。

4)方便程序的测试

Spring支持JUnit4,可以通过注解方便地测试Spring程序。

5)AOP编程的支持

Spring提供面向切面编程,可以方便地实现对程序进行权限拦截和运行监控等功能。

6)声明式事务的支持

只需要通过配置就可以完成对事务的管理,而无须手动编程。

作为Java程序员,对Spring的理解和掌握程度,基本上就是编程能力的体现。

Spring是什么?

官方来说:Spring是一个开源的轻量级开发应用框架,其目的是用于简化企业级应用程序开发。
翻译一下:Spring就是一个容器IOC框架,用来装javabean(java对象),中间层框架(万能胶)可以起一个连接作用,比如说把springmvc和mybatis粘合在一起运用。简单来说,Spring是一个轻量级的控制反转(IOC) 和 面向切面(AOP) 的容器框架。
与EJB对比,依赖资源少,销毁的资源少。

为什么是轻量?

从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。

此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

IOC

IOC是什么

Inversion of Control 大致翻译成控制反转, 就是由容器控制程序之间的(依赖)关系而非传统实现中,由程序代码直接操控。
这也就是所谓“控制反转”的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
IOC还有另外一个名字:DI依赖注入。
获得依赖对象的过程被反转了,获得依赖对象的过程由自身管理到IOC容器主动注入,这也就是依赖注入DI Dependency injection,所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。

为什么要使用IOC?

借助于“第三方”实现具有依赖关系的对象之间的解耦。

AOP

AOP概念:

是一种编程思想,可以说是对面向对象编程的补充,通过分离应用的业务逻辑与系统级服务(例如日志和事务管理)进行开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责其它的系统级关注点,例如日志或事务支持。
指扩展功能不修改源代码,将功能代码从业务逻辑代码中分离出来。
我们可以把日志,事务,安全支持等服务理解为一个切面,以前这些服务都是写在逻辑代码中 (这样存在问题:业务逻辑不纯净,而且重复性劳动过多,可以剥离出来为一个增强,然后织入到业务逻辑中去。)

AOP特点:

采用横向抽取机制,取代了传统纵向继承体系重复性代码;

AOP术语:

切面:把增强应用到具体方法上面的过程称为切面。

切入点:在类里边可以有很多方法被增强,比如实际操作中,只是增强了个别方法,则定义实际被增强的某个方法为切入点。

通知/增强:增强的逻辑,称为增强,比如扩展日志功能,这个日志功能称为增强。

AOP的实现者

AspectJ

AspectJ是语言级的AOP实现,2001发布,扩展了Java语言,定义了AOP语法,能够在编译期通过提供增强代码的织入,所以它有一个专门的编译器用来生成遵守Java字节码规范的class文件

SpringAOP
SpringAOP使用纯Java实现,在运行期通过代理的方式向目标类织入增强代码。

SpringAOP的实现
基于JDK的动态代理

热门文章

Copyright © 2024 智能网 - 系统编程和数码游戏介绍_知识_教程服务平台!All Right Reserved - 备案号 : 蜀ICP备12013660号

免责声明:智能网所有文字、图片等资料仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,如有问题,请联系我们删除。