对spring的理解

1.spring为什么出现:
spring是一个轻量级web框架,以前都是使用 JSP+Servlet+数据库+JDBC技术开发,在操作dao层的时候,每次都需要实例化一次,这样就很繁琐,代码冗余,耦合度高。而且每次都需要我们控制什么时候创建对象,以何种方式创建,不能更加专注于业务逻辑本身。为了降低代码耦合度,减轻工作量,spring应运而生。

2.理解spring:
(1)IOC和DI:
我们平时在开发java web程序的时候,每个对象在需要使用它的合作对象时,自己都要将它要合作对象创建出来(比如 new 对象),这个合作对象是由自己主动创建出来的。创建合作对象的主动权在自己手上,需要时候就主动创建,这样耦合性很高。在这稍微解释一下耦合性概念:A对象需要使用合作对象B来共同完成一件事,A要使用B,那么A就对B产生了依赖,也就是A和B之间存在一种耦合关系,并且是紧密耦合在一起。
但是这种高度的耦合性在使用了Spring之后就不一样了,创建合作对象B的工作是由Spring来做的,Spring创建好B对象,然后存储到一个容器里面,当A对象需要使用B对象时,Spring就从存放对象的那个容器里面取出A要使用的那个B对象,然后交给A对象使用,至于Spring是如何创建那个对象,以及什么时候创建好对象的,A对象不需要关心这些细节问题,A得到Spring给我们的对象之后,两个人一起协作完成要完成的工作即可。
控制反转IoC(Inversion of Control)是说创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方,比如转移交给了IoC容器,它就是一个专门用来创建对象的工厂,你要什么对象,它就给你什么对象,有了 IoC容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖IoC容器了,通过IoC容器来建立它们之间的关系。
IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的
(2)AOP:
在面向对象编程(OOP)思想中,我们将事物纵向抽象成一个个的对象。而在面向切面编程中,我们将一个个对象某些类似的方面横向抽象成一个切面,对这个切面进行一些如权限验证,事物管理,记录日志等公用操作处理的过程就是面向切面编程的思想。

3.spring的好处:
轻量:Spring 是轻量的,基本的版本大约2MB。 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。 容器:Spring 包含并管理应用中对象的生命周期和配置。 MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架是一个开源的Java应用程序开发框架,它提供了一系列的解决方案和工具,用于简化企业级应用程序的开发。以下是对Spring框架的一些理解: 1. 轻量级:Spring框架的设计目标之一是保持轻量级,它不会强制引入过多的依赖或复杂的配置。使用Spring,你可以选择性地使用各个模块和功能,以满足你的需求。 2. 控制反转(IoC):Spring框架通过控制反转(IoC)容器来管理对象的生命周期和依赖关系。你可以通过配置文件或注解来描述对象之间的依赖关系,而不需要显式地在代码中进行硬编码。这样可以提高代码的可维护性和可测试性。 3. 依赖注入(DI):依赖注入是控制反转的一种实现方式,它使得对象不需要自己创建或管理它们所依赖的对象。Spring框架通过依赖注入将所需的依赖关系注入到对象中,使得对象之间解耦,并且方便进行单元测试和模块化开发。 4. 面向切面编程(AOP):Spring框架提供了面向切面编程的支持,使得你可以将横切关注点(例如日志记录、事务管理等)从核心业务逻辑中分离出来,并通过配置文件或注解的方式进行统一管理。 5. 企业级开发支持:Spring框架提供了许多企业级开发的功能和扩展,如集成事务管理、安全性、远程访问、缓存管理等。这些功能可以帮助开发者快速构建高可靠性、可扩展性和安全性的企业级应用程序。 总结来说,Spring框架是一个强大而灵活的Java开发框架,它通过控制反转、依赖注入和面向切面编程等特性,提供了一种优雅的方式来构建和管理Java应用程序。它的设计目标是简化开发过程,提高代码的可维护性和可测试性,同时提供了丰富的企业级功能和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值