摘要: 程序员这个职业是用“脑力”创造价值的职业,包括但不限于技术能力,沟通能力,抗压能力等等。既然脑力是创造价值的基础,那么不断学习就是搭建更高的平台,开阔视野。关于自学,有以下几点感悟。 和实践结合起来 抛开应用(指的是一些比较深入使用)单独去学习一样东西,往往理解是不够透彻的,可能过一段时间又往。就和阅读全文
posted @ 2018-04-25 17:08 atheva 阅读(16) 评论(0) 编辑
摘要: 在前面一篇文章中,介绍,在一个Bean中注入自己,如果有@Async和@Transaction,如果使用@Autowire注入自身,会报循环依赖,如果使用BeanFactoryAware注入自己,会使得@Transaction失效。阅读全文
posted @ 2018-03-26 17:58 atheva 阅读(258) 评论(0) 编辑
摘要: 1.概述 spring的事务注解@Transaction 相信很多人都用过,而@Transaction 默认配置适合80%的配置。 本篇文章不是对spring注解事务做详细介绍,而是解决一些实际场景下遇到的问题 spring事务注解的基本原理 下面针对是否需要开启事务和是否需要回滚事务在特定场景下的阅读全文
posted @ 2018-03-10 10:59 atheva 阅读(299) 评论(0) 编辑
摘要: 当单库已不能支撑当前业务的时候,我们往往都考虑进行分库(横向拆分或者纵向拆分)。但分库有个无法回避的问题,就是事务问题。网上有很多分布式事务解决方案,例如XA,TCC等,但是最常用,也是改造成本最低就是使用最终一致性来保证分布式事务。 比较常用的就是使用消息中间件(RabbitMq,RocketMq),通过事务消息来解决最终一致性。本篇文章将介绍数据库的来完成最终一致的方案。阅读全文
posted @ 2018-03-06 20:15 atheva 阅读(472) 评论(1) 编辑
摘要: spring事务实现原理阅读全文
posted @ 2018-01-30 11:19 atheva 阅读(94) 评论(0) 编辑
摘要: 1.概述 有些时候,我们需要在spring启动过程中加入一些自己的逻辑,特别是一些基本框架和spring做整合的时候(例如:mybatis-spring-boot-starter),就需要使用Spring给我们预留的扩展接口。本文将介绍3个常用的初始化扩展接口: 2.spring初始化 下图是spr阅读全文
posted @ 2018-01-10 16:33 atheva 阅读(188) 评论(0) 编辑
摘要: 一、概述 随着时间和业务的发展,数据库中表的数据量会越来越大,相应地,数据操作,增删改查的开销也会越来越大。因此,把其中一些大表进行拆分到多个数据库中的多张表中。另一方面,在分库分表以后还需要保证分库分表的和主库的事务一致性。这片文章介绍一下:https://zhuanlan.zhihu.com/p阅读全文
posted @ 2017-12-13 21:40 atheva 阅读(2681) 评论(0) 编辑
摘要: 单元测试 首先单元测试真的算是一种“脏活累活”,但是我个人感觉还是有必要,至少本人最近开始写单元测试后还是能发现一些“bug”的。 如何写单元测试 单元测试的要求...网上很多。下面来分享一下我是如何写单元测试。首先我们项目一般都是MVC分层的,而单元测试主要是在Dao层和Service层上进行编写阅读全文
posted @ 2017-11-26 18:04 atheva 阅读(2600) 评论(3) 编辑
摘要: 概述 Spring的切面(Spring动态代理)在Spring中应用十分广泛,例如还有事务管理,重试等等。网上介绍SpringAop源码很多,这里假设你对SpringAop有基本的了解。如果你认为Spring代理类会创建多重代理,那说明你真的没了解。 需求背景 假设我现在想提供一个jar包,这个ja阅读全文
posted @ 2017-10-31 01:23 atheva 阅读(542) 评论(0) 编辑
摘要: 概述 我们知道,在Spring boot中可以通过xml或者@ImportResource 来引入自己的配置文件,但是这里有个限制,必须是本地,而且格式只能是 properties(或者 yaml)。那么,如果我们有远程配置,如何把他引入进来来呢。 第一种方式 这外一种方法,相对更简单些,但是相对没阅读全文
posted @ 2017-10-17 18:45 atheva 阅读(1180) 评论(1) 编辑