首页 > 其他分享 >spring是什么

spring是什么

时间:2023-01-31 23:24:11浏览次数:39  
标签:容器 依赖 对象 spring 什么 AOP IOC 反转

spring是一个容器框架,用来装javaBean(java对象),也是一个中间层框架(万能胶)可以起到连接作用,比如将mybatis、springMVC等粘合在一起运用,可以让我们的开发更快、更简洁。
Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。

IOC

ioc容器:实际上就是个map(key,value),里面存的是各种对象(在xml里配置的bean节点或有这些注解的类@repository、@controller、@service、@component),项目启动时读取配置文件里配置的bean节点,根据全限定类名使用反射创建对象放到Map里。
这时候map里就有各种对象了,接下来在代码中需要用来这些对象的地方进行依赖注入。
控制反转:没有引入IOC容器之前,如对象A依赖于对象B,那么在A中就要主动去创建对象B,对对象B的控制权在我们自己的手上。引入IOC容器之后,IOC容器会主动创建一个对象B注入到对象A需要的地方,对象B不需要我们主动创建了,变成了被动获取,这就是控制反转。
依赖注入:获得依赖对象的过程被反转了。控制被反转之后,获得依赖对象的过程由自身管理变为了由IOC容器主动注入。依赖注入是实现IOC容器的方法,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。

AOP

系统是由许多不同的组件组成的,每个组件负责不同的功能。除了实现自身的核心功能之外,往往还承担额外的职责,比如日志这种非核心业务,这种服务被称为横切关注点,因为它们会跨域系统的多个组件。
当我们需要为分散的对象引入公共的行为时,OOP显得无能为力。因为OOP允许定义从上到下的关系,但并不适合从左到右的关系。比如日志代码往往水平地分布在所有对象层次中,且与它所散布到的对象的核心功能毫无关系。
所以在OOP设计中导致了大量的代码重复,而不利于各种模块的重用。
AOP:将程序中的交叉业务逻辑(比如日志、安全、事务等),封装成一个切面,然后注重到目标对象(具体业务逻辑)中去。AOP可以对某个对象或某些对象的功能进行增强,比如对对象中的方法进行增强,可以在执行某个方法之后做一些事情,也可以在执行完某个方法之后做一些事情。

标签:容器,依赖,对象,spring,什么,AOP,IOC,反转
From: https://www.cnblogs.com/ccx-lly/p/17081072.html

相关文章

  • SpringBoot实现热部署
    在项目开发的过程中,会频繁修改类的代码,导致需要重新编译、启动,影响开发效率。SpringBoot提供了spring-boot-devtools组件,使代码改动后,无须手动重启SpringBoot应用即可重......
  • 人最好的活法是什么样的?
    1,无房贷,无车贷,最好有两套房子,一套在市中心,   享受城市生活的便利,一套在郊区,结庐在人境,而无车马暄。2,有一部以上车子,可以是紧凑型的,保养得当,能开上二十年。3,男人平时......
  • spring boot——json解析示例——fastjson——使用fastJson将json与对象、集合、数组
                 ......
  • spring boot——json解析示例——fastjson
    多层嵌套JSON类型数据解析简单来说:“key”:“value”-->此时value为String “key":0-->此时value为int “key”:{“k1”:“v1”}-->此时value为JSONObject......
  • SpringBoot设置日志级别
    输出到控制台logging:#日志记录到文件中file:#指定文件名name:server.loglogback:rollingpolicy:#指定文件大小max-file-size......
  • 使用区块链交易所的好处是什么
    大家都知道,交易所其实就是用来交换数字货币的一个平台,它们部分平台可进行杠杆交易、量化交易、合约交易等操作。使用区块链交易所的好处是什么在区块链上交换的好处在于交易......
  • 什么是去中心化?去中心化系统的优势DAPP系统开发
    为了确保去中心化的容错才能,以下办法或许会有所协助:1.尽或许坚持多方竞争联系;2。升级协议的技术和知识一定要民主,让更多的人参与到一些显着不好的协议变更的研讨、评论和......
  • vue+springboot集成钉钉扫码登录
    具体接入方式可参考官方介绍:https://open.dingtalk.com/document/orgapp-server/tutorial-obtaining-user-personal-information本文只演示vue+springboot如何实现钉钉扫......
  • JUnit介绍,JUnit是什么?
    JUnit是什么? JJUnit是用于编写和运行可重复的自动化测试的开源测试框架,这样可以保证我们的代码按预期工作。JUnit可广泛用于工业和作为支架(从命令行)或IDE(如Eclipse......
  • ​Spring:IOC(2)
    接前文:Spring:IOC目录依赖注入之setter注入依赖注入之构造器注入特殊值处理字面量赋值null值xml实体CDATA节为类类型属性赋值为数组类型属性赋值修改Student类为集合类......