腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
Java Web技术经验总结
共 17 篇文章
加入清单架
1
Java Web技术经验总结(一)
2
Java Web技术经验总结(二)
3
Java Web技术经验总结(三)
4
Java Web技术经验总结(四)
5
Java Web技术经验总结(五)
6
Java Web技术经验总结(六)
7
Java Web技术经验总结(七)
9
Java Web技术经验总结(九)
10
Java Web技术经验总结(十)
11
Java Web技术经验总结(十一)
12
Java Web技术经验总结(十二)
13
Java Web技术经验总结(十三)
14
Java Web技术经验总结(十四)
15
Java Web技术经验总结(十五)
16
Java Web技术经验总结(十六)
17
Java Web技术经验总结(十七)
清单首页
Java Web技术经验总结
文章详情
清单「 Java Web技术经验总结」 11/17
Java Web技术经验总结(十一)
阿杜
·蚂蚁金服开发工程师
Git工作流:
Git 工作流程
Maven版本管理:阅读
Maven最佳实践:版本管理
lombok project
,在Java开发中,我们常常需要写很多令人厌烦的getter/setter代码、需要自己覆盖equals、toString和hashcode等方法,不胜其烦且容易出错。lombok就是为此而生的,通过给bean类添加一些注解,可以自动生成上述函数。不过在我过去的开发中,如果需要定制自己的equals方法,我常常使用Apache Commons中提供的EqualsBuilder和HashCodeBuilder两个类,参考:
Java 中正确使用 hashCode 和 equals 方法
。PS:lombok我刚刚接触,还不清楚它是否也有定制具体实现的功能;PS2:在IDEA中使用lombok需要安装对应的插件,参考:
lombok在IntelliJ IDEA下的使用
MySQL的主从延迟和解决方案:
MySQL主从数据库同步延迟问题解决
来自《Effective Java》中的第6条规则:内存泄漏的另一个来源是缓存。一旦你将对象引用放在缓存中,它就很容易被忘掉,从而使得它在不再有用之后很长一段时间仍然留在缓存中。这种情况下,可以使用WeakHashMap代表缓存,只要在缓存外存在某个像的键的引用,该项就有意义;当缓存项的键的生命周期结束后,该项也会自动被删除。关于WeakHashMap,可以参考这篇文章:
深入理解WeakHashMap
。
关于Code Review的一篇文章:
说说Code Review
,其中不仅讲了code review,还讲了带新人的方法。另外,关于这个主题,可以参考《Clean Code》和《重构》这两本书。
实现分布式锁的方法,这篇文章讲得很详细:
分布式锁1 Java常用技术方案
使用Intelij IDEA中的git插件进行分支合并的步骤(例如:branch1合并到branch2):
切换到目标分支,branch2
在右下角git快捷窗口——>branch1——>merge,就会将branch1合并到branch2。
快捷合并分支1
分支合并结果
这两天遇到一个业务场景:一个数据库修改的请求,客户端由于历史原因,经常会发出两个完全相同的请求,导致服务端发生唯一键冲突。为了解决这个问题,我们决定使用分布式锁解决这个问题,在进行数据库插入操作之前要先拿分布式锁,拿到锁以后也要先检查数据库,没有的话再插入数据。 我在测试的时候发现分布式锁不起作用,先是以为自己的锁有问题,排除这个问题之后,开始回顾之前的代码。发现一个坑:原有的代码在接口定义层用了@Transactional注解,Spring中的事务是基于AOP实现的,如果在RPC接口使用事务注解,那么事务会在RPC接口返回之后才会提交。可以看出,当事务的范围大于同步代码块的范围时会有问题。A请求释放了锁,但是它的事务还没有提交;B请求已经拿到了锁,但是看不到A请求的事务修改的东西,导致脏读。 关于Spring中的事务,可以参考
官方文档
。 我的经验是:(1)只有某个业务要求同时修改两张以上的表的数据的时候,再使用事务,并且要在方法级别使用;(2)事务和同步代码块不可嵌套使用。
下一篇
举报
领券