git-commit-id执行耗时过长

背景

maven的git-commit-id插件,可以在release jar包时,生成一个git.properties文件,文件中可以附带上git的一些信息。git.properties示例:

阅读更多

keepalive

TCP keep alive

TCP协议栈的keepalive,连接空闲一定时间后,会进行保活探测

阅读更多

spring-transaction

使用

JDBC事务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Test
@SneakyThrows
public void testTransaction() {
try (Connection conn = DriverManager.getConnection(connectString)) {
conn.setAutoCommit(false);
try (PreparedStatement psts = conn.prepareStatement("update words set word=CONCAT(word, '++') where id=?")) {
// 第一个更新语句
psts.setInt(1, 2);
psts.executeUpdate();
// 第二个更新语句
// 抛出异常
int i = 1/0;
psts.setInt(1, 3);
psts.executeUpdate();
// 提交事务
conn.commit();
} catch (Throwable t) {
conn.rollback();
}

}
}

阅读更多

mybatis源码解析(三)—— Spring集成

使用

依赖包地址:

1
2
3
4
5
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>

阅读更多

mybatis源码解析(二)—— 代理类生成分析

mybatis虽然支持直接使用SqlSession来操作db,

1
final List<Object> selectAll = sqlSession.selectList("selectAll", null, new RowBounds(10, 20));

阅读更多

mybatis源码解析(一)

基础组件

SqlSession

SqlSession是mybatis面向用户的一个类,使用如下:

阅读更多

spring-aop

Spring-Aop是spring提供的面向切面编程的工具,spring的好多功能也是基于切面来实现。切面编程可以将分散的逻辑集中在切面中,便于代码的维护。

AOP使用

注解方式

配置:

阅读更多