摘要: 事务传播行为 指通过@Transactional方式声明注解时,调用另一个带有事务注解的方法 (两个事务注解都生效),即嵌套事务的情况 propagation属性控制传播行为,默认值是Propagation.REQUIRED,一共有七种情况 注:以下所指的外层方法是调用者,内层方法指的是被调用的方法 阅读全文
posted @ 2019-12-31 18:26 _Gradually 阅读(688) 评论(0) 推荐(0) 编辑
摘要: 内部调用事务失效 同一个service内,如果service调用的主方法上没有加事务注解,主方法的调用了该service的另一个有事务注解的方法,这个注解不会生效。 主要原因在于事务是通过AOP实现的,代理对象调用的方法上有事务注解,事务才会生效。 在同一个Service类中,只有由service代 阅读全文
posted @ 2019-12-31 14:47 _Gradually 阅读(2231) 评论(0) 推荐(0) 编辑
摘要: AOP是Spring最重要的功能之一,通过切面实现对象增强,降低对业务的侵入,把核心业务代码和周边公共代码解耦。 比如,在方法上加上@Transactional注解,就能够使用Spring的默认事务机制,通过TransactionInterceptor实现切面,在before时提供调用点,决定业务方 阅读全文
posted @ 2019-12-29 17:44 _Gradually 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 函数式编程能够更好地实现:抽象、复用、组合,提供更加清晰的面向对象编程方式 从替换匿名内部类开始 下面的代码为button添加响应事件:给addActionList()方法传入匿名内部类,该匿名内部类是ActionListener接口的实现类 我们只是想要为button对象添加一个行为:点击按钮时调 阅读全文
posted @ 2019-10-24 16:24 _Gradually 阅读(366) 评论(0) 推荐(0) 编辑
摘要: Stream流,是对集合对象操作的增强 基本使用 比如有一个Person类的集合:List<Person> personList,可以通过stream()对集合中的元素进行操作, 下面的操作流程可以归纳为 过滤-映射-收集。 上述代码获取到了,年龄大于20岁的人id集合。 在 过滤-映射-收集 这个 阅读全文
posted @ 2019-09-10 16:59 _Gradually 阅读(4934) 评论(0) 推荐(0) 编辑
摘要: 响应式编程介绍 先来介绍一下响应式编程:响应式编程是一种,基于事件驱动的方式,处理异步数据(事件)流的编程范式。 实际上就是 观察者模式+数据流 + 事件控制 1.什么算是数据流? 举个例子,在界面中点击登录按钮发出登录请求,这个事件就是一个数据流。 2.什么算是基于事件驱动? 打个比方,发出登录请 阅读全文
posted @ 2019-08-26 09:36 _Gradually 阅读(593) 评论(0) 推荐(0) 编辑
摘要: 对象序列化 对象序列化是指把对象保存为二进制字节码文件,反序列化是指把二进制字节码文件转换成Java对象。 比如有一个类Person,实现了序列化接口Serializable 就可以通过ObjectInputStream 和 ObjectOutputStream 对该对象进行读写。 objectOu 阅读全文
posted @ 2019-06-16 17:27 _Gradually 阅读(745) 评论(0) 推荐(0) 编辑
摘要: 问题起源: 64位CPU的64指的是什么 32位计算机的32位指的是啥 32位计算机装8G内存有用吗 32位应用程序和64位应用程序又是啥... ... 能说上来一点,但实际上含糊不清的概念有很多 下文主要从内存、CPU、操作系统的角度对一些容易模糊的基础知识做概况。 内存 主存储器,简称主存或内存 阅读全文
posted @ 2019-05-27 09:01 _Gradually 阅读(2105) 评论(0) 推荐(0) 编辑