昨天晚上到今天早上准备的面试资料都没用上。虽然没用上,但真的是学到了。之前从未想过,这里面蕴含的宝藏这么多。
事物
【四个特性(原子性、一致性、隔离性、持久性)】
【5种属性(传播性7种、隔离级别5种(是为了避免多事物并发的时候引起的脏读、不可重复读、幻读)、只读、事物超时、回滚规则)】
【编程式和声明式事务的区别
简单地说,编程式事务侵入到了业务代码里面,但是提供了更加详细的事务管理;而声明式事务由于基于AOP,所以既能起到事务管理的作用,又可以不影响业务代码的具体实现。】
IOC和DI
其实它们不是什么技术,而是一种设计思想。是同一个概念的不同角度描述.
在没有使用Spring的时候,自己要使用像new object() 这样的语法来将合作对象创建出来,,创建合作对象的主动权在自己手上.这样对象间的耦合度就高了。
Spring创建好B对象,然后存储到一个容器里面,当A对象需要使用B对象时,Spring就从存放对象的那个容器里面取出A要使用的那个B对象,然后交给A对象使用,至于Spring是如何创建那个对象,以及什么时候创建好对象的,A对象不需要关心。
AOP的好处及使用场景?
改善现有代码,解决代码重复性问题。
应用场景:权限控制、缓存控制、事物控制、审计日志、性能监控
Spring AOP实现
实现 从静态代理到动态代理
动态代理分为:基于接口代理(JDK代理)和基于继承代理( Cglib代理)
JDK与Cglib代理对比
JDK只能针对有接口的类的接口方法进行动态代理,接口中不能有private方法,所以JDK也不能对private方法进行代理
Cglib给予继承来实现代理通过(enhancer.create()生成子类,与java类本身无关),无法对static、final类进行代理 、无法对private、static方法进行代理
今天这一篇,也算是对昨天的补充了。
End.**在沉网中生活,不敢失去想飞的心,始终铭记飞翔的姿势
网友评论