Spring Framework-知识总结(未完)

1.对象的生命周期

1.单例模式

*创建容器时,创建对象;容器销毁时,对象销毁;

2.原型模式

*创建容器时,对象不会创建,在每次获取对象时创建对象;

*对象不会随着容器的销毁而销毁;

3.在<bean>标签中的两个属性

*Init-method:指定初始化执行的方法;

*destory-method:指定销毁时执行的方法,只对scope为singleteton的bean有效;

2.oop和aop思想区别:

面向对象:纵向抽取;

AOP:横向抽取;业务场景:提取公共的;

3.Spring整合Mybatis的详解

注:在进行一下操作时,容器中要有DataSource对象.也就需要设置:

1.SqlSessionFactoryBean(Spring中获取SqlSession对象用的):

*这个类在底层实现了FactoryBean接口,也就是利用了标准工厂模式,获取对象.

#标准工厂模式:在我们需要一个对象时,就可以通过实现FactoryBean接口,重写其中的getObject()方法返回想要得到的对象和 getObjectType()方法设置对象的类型.

*源码:

2.MapperScannerConfigurer详解

Bean定义后置处理器的作用:

2.1当我们创建容器时,会先根据配置类,找到所有你需要创建的对象,然后会根据类中的信息,变成Bean定义,然后保存起来(Map集合中).

Bean定义:相当于生产图纸,先准备好图纸,工厂才会自动生产成品.

*spring在我们创建对象之前会先分析我们的对象的信息,如:叫什么\有没有初始化方法等各种信息.这些信息就叫做Bean定义.

2.2然后就会去检查,这些bean定义中是否有实现了BeanFactoryPostProcessor接口的Bean定义.

*如果有,就会先创建它们.优先级会变高.然后,就会执行它们的postProcessBeanDefinitionRegistry方法.

#在这个方法中,我们就可以将一些其他没有进行Bean定义的类,拉到保存bean定义的map集合中.(也就相当于工厂有了这个对象生产图纸,然后就会自动根据图纸创建对象)

2.3然后就会把2.1和2.2中总生成的Bean定义所代表的类的对象创建出来.

2.4所以Bean定义后置处理器就赋予了我们一个能力:就是以编码的形式拉入其他对象,有了对象就可以进行其他操作.

再来看我们获取Mapper对象时的操作:

 

注意:虽然我们的Mapper包下面全是接口,但是底层会帮我们自动创建实现类,然后去创建对象.(类似于我们之前的动态代理方式获取Mapper层实现类对象的方式)

3.经过以上的步骤我们就可以得到我们需要的,sqlsessionFactory对象(它就可以得到SqlSession对象)、mapper对象,也就可以对数据库进行正常操作了.

4.AOP面向切面编程的底层实现原理---->动态代理实现分析

动态的实现:程序运行中发生的事

1.动态直接生成.java文件,直接在字符串中进行拼接新代码

1.1Java代码本质就是一堆字符串,编写完之后会就是.java文件,所以可以利用IO输出流,将Java格式的字符串输出,就得到了.java文件.

2.直接生成.class文件(class文件的开头都是CA FE BA BE)

动态字节码技术:

凭空造对象:

有了凭空造对象这门技术,并且我们可以让他们执行同一个方法,还能获取到原本方法,我们也就可实现对一个对象进行功能增强.也就是我们AOP的思想.

3.Bean后置处理器:发生在bean定义后置处理器后,spring容器将所有对象都创建好之后,它才会运行BeanPostProcessor.作用就是给你最后改变对象的机会,否则对象就不能在改变了.AOP就是在后置处理方法中完成的.

      ###AOP的核心作用就是为我们原本的方法增加功能,并且不修改原代码.所以通过动态代理的方式我们就能够凭空创建对象,并且创建出来的额对象,都会执行一个共同的方法,在这个方法中就可以实现增强逻辑,还可以执行原来的逻辑.在bean后置处理器中,他会在对象创建完成后执行,这是我们最后修改对象的时机,所以AOP也就在这一步进行,将对象的逻辑进行改变.

Spring的生命周期: 5.X版本 基于注解形式

1.当我们new 容器的时候,整个周期就开始了;

未完.....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值