Sping基础_1
2022-04-20 19:29:07 4 举报
基础
作者其他创作
大纲/内容
初始化
new工厂反射
当你作为一个陌生的客户端或者用户。需要去提交申请时,可以从容器中获取Bean
cglib
控制反转依赖注入
BeanPostProcessor
三级缓存存在的意义content.getBean();拿到的是代理类还是反射后实现的类?
婚姻管理局
看到PostProcessor,第一反应就是扩展类
AOP
申请
个性化需求
环境对象在Spring中也有非常重要的作用,因为环境里面有环境的属性,有环境的一些变量。当程序运行的时候,我可能需要读取某些系统属性。所以当我的程序进行启动的时候。我就会把我系统里面的某些值给读取回来。
spring
Environment
男生/女生
抽象
这个时候就有了容器这个东西。有了容器之后,我从容器里面直接拿。那么容器里面到底是怎么做的,或者怎么得来对象的呢?跟我没关系,我一点儿也不关心。
system.getProperties
XML文件/注解
bean实例化
包含了两种实现方式
isSingleton
PostProcessor
将我们需要的系统属性值,提前保存到变量里面。当我们的Spring容器启动好了之后,就可以直接进行调用了。
我能不能把对象的创建过程丢出去呢?或者说让别人来完成呢?
容器有对象
底层实现机制
后置处理器
FactoryBean
如果想在不同的处理阶段,做不同的事情,怎么办?我在不同的阶段时,发布不同的事件。当我的监听器,监听到不同的事件的时候。我可以实现相关的具体操作。监听器(事件发布,多播器)观察者模式
属性赋值操作
人
BeanFactory他可以访问我们当前的容器,所有的容器都是BeanFactory子类。
bean工厂的实现类应该尽可能的支持 标准的bean的生命周期。
我们通过工厂类来帮助我们创建对象。每次需要用的时候,只需要我们调用工厂类里面的某个方法,就可以返回了。但是不管是new,还是工厂类。这些代码都需要我们自己来写。或者都需要我们自己来实现,整体对象的创建过程。
Constructor ctor = class.getConstructor();Object object = ctor.newInstance();获取构造函数,获取到构造器,调用方法创建实例。通过反射来实例化我们的对象
getObjectType
Bean:在spring中构成应用程序主干,并由Spring IOC容器管理的对象称为Bean。
我只需要关心一件事,容器里面有对象,我只需要拿过来用就行。
Bean的定义信息
容器返回Bean
此处的初始化是后续的对bean作的操作
IOC容器所谓的容器,就是用来存放我们当前的对象。有了当前这个对象之后,我们可以从容器里面拿走我们的当前对象。
完整的可用对象
BeanFactoryPostProcessor
context.getBean();可以通过这个方法拿到我们的对象
IOC
BeanDefinationReaderBean定义信息读取器就是将当前的Bean的定义信息读取进来
Spring拿到Bean的定义信息之后,将信息传递给容器。容器接受到这些信息之后,才能创建bean的定义对象。
这一步抽象层,就是定义了一个规范,想要让Spring容器识别到,就必须实现这个接口。由当前接口去处理定义的信息。
读取Bean的定义信息之后,正常情况下,我可以通过new,工厂和反射,来实例化-初始化-然后可以调用。但是实际上中间少了很多环节。现在比如说,我才用xml的方式来读取bean的,我这个xml文件里面,一共定义了100个Bean标签。意味着100个对象。我发现这100个bean标签里面都有一个属性叫Age,但是age的值写错了,把100写成了10.
BeanDefinationbean定义信息
增强器
new
获取类的方式Class.forName(\"包名+类名\");类.class对象.getClass
getObject
返回对象
工厂
空对象
动态代理
需要代理的对象要不要创建出一个空的对象?如果你的类是一个代理类,需要用到AOP切面了,这个时候,当前这个代理对象,还要不要进行bean的实例化呢?答案是要!要看当前的这个流程关系图,要实现AOP代理,也是拿着实例化的对象来进行。
不管他是叫什么名字,最重要的目的都是一样的。是方便我们在整个处理的过程中,我可以方便修改某些相关的元数据信息。以及添加一些我自己的任务和代码逻辑。
system.getEnv
BeanDefination:专门用来存储Bean的定义信息的
Spring是一个框架,是一个生态。是整个生态系统的基石,提供完整的扩展能力。为所欲为!!!
jdk
需要自定义创建一个特殊的Bean的时候,就需要实现FactoryBean接口,通过这个工厂类来自定义需要创建的Bean
我对象都创建好了,我能对这个对象进行修改吗?答案是可以的。AOP AOP的入口就在这个环节。
0 条评论
下一页