Spring-复习

五、Spring相关

  • Spring AOP的实现原理和场景?
  • Spring bean的作用域和生命周期;
  • Spring Boot比Spring做了哪些改进? Spring 5比Spring4做了哪些改进;
  • 如何自定义一个Spring Boot Starter?
  • Spring IOC是什么?优点是什么?
  • SpringMVC、动态代理、反射、AOP原理、事务隔离级别;

Spring和Springboot差别

jianshu.com/p/ffe5ebe17c3a

Springboot怎么处理接口请求的

收到请求后,会遍历一个列表,找到满足url的handler。然后是参数解析,会有很多种参数,所以会遍历找出来一个可以解析的解析器进行解析。最后处理返回值并返回。

Bean的生命周期

主要有四个,实例化Instantiation,属性赋值Populate,初始化Initialization,销毁Destruction。

在实例化前后有一个接口InstantiationAwareBeanPostProcessor,分别对应于实例化之前postProcessBeforeInstantiation方法和postProcessAfterInstantiation方法;之后是属性赋值,然后是初始化,初始化前后也有一个接口BeanPostProcessor,前后各有两个方法和之前的两个名字一样。最后销毁。https://www.jianshu.com/p/1dec08d290c1。
Bean生命周期详细版:实例化,填充属性,name,factory,applicationContext,before-init,init,after-init,调用,destory。https://www.zhihu.com/question/38597960。

factoryBean和beanFactory

beanFactory是IOC容器的接口,factoryBean是自定义实例化bean的一个工厂接口,给bean加上了一个简单工厂和装饰模式。

Aop

如果我们想在每个方法前面都加上一个参数校验,需要在方法中编写代码,但是这个代码和业务代码没有关系,所以可以把他们抽象出来,作为aop切面,可以注解实现切面。

Bean的作用域

五种:singleton:全局只有一个。prototype:每次调用bean,都是new。request:请求处理时创建,请求完成后销毁。session:所有http请求共享同一个请求bean。globalSession:全局session,portlet环境才生效,否则相当于session。

Spring的bean循环依赖怎么解决

https://www.zhihu.com/question/276741767/answer/1192059681 , 创建时会加入到三级缓存,这个时候还没有赋值,循环依赖的对象直接从三级缓存里面找就可以。构造函数的循环依赖怎么办,用@lazy注解,注入代理对象,当使用这个对象的时候再创建真实的对象。
https://blog.csdn.net/Revivedsun/article/details/84642316

为什么是三级缓存不是二级缓存

https://www.cnblogs.com/grey-wolf/p/13034371.html#_label5 ,https://blog.csdn.net/weixin_49592546/article/details/108050566 。

二级缓存可以解决aop动态代理的情况,代理对象会被放到二级缓存,解决代理对象的循环依赖。

jdk代理和cglib代理的区别

https://segmentfault.com/a/1190000037648064

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值