上次我说了一些 “复杂的重构技巧” ,讲的是一些使用 IntelliJ 的简单功能实现复杂的重构需求的技巧。 看到大家的反响之后我就感觉那个可能不大亲民,因为很多人连 inline 这功能都不知道(那岂不是把 IntelliJ 用成了记事本), 于是我决定再写一篇讲讲 IntelliJ 已经提供好了的一些复杂的重构功能。 这就不再是需要自己进行奇奇怪怪的操作的教程了,就会亲民得多。 从方法中...

一、前言我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题: 缓存穿透 缓存并发 缓存失效 缓存穿透 注: 上面三个图会有什么问题呢? 我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样...

久违了的Spring Boot系列,今天抽空更新一篇。去年写过很多篇关于数据访问的文章了,比如下面这些: 使用JdbcTemplate 使用Spring-data-jpa简化数据访问层(推荐) 多数据源配置(一):JdbcTemplate 多数据源配置(二):Spring-data-jpa 使用NoSQL数据库(一):Redis 使用NoSQL数据库(二):MongoDB 整合MyBat...

导读: 程序员你为什么这么累? 我的编码习惯 - 接口定义 我的编码习惯 - Controller规范 我的编码习惯 - 日志建议 我的编码习惯 - 异常处理 我的编码习惯 - 参数校验和国际化规范 我的编码习惯 - 工具类规范 我的编码习惯 - 函数编写建议 我的编码习惯 - 配置规范 一个项目不可能没有工具类,工具类的初衷是良好的,代码重用,但到了后面工具类越来越乱,有些项目工具类有...

重构是 IDE 给人类生活带来便利的一个重要方面。但是 IDE 永远不是我们肚子里的蛔虫,有时我们会有复杂到 IDE 不可能直接提供的重构需求。下面我来告诉大家怎么利用有限的 IDE 重构功能, 创造无限的价值 处理复杂的情况。 复习一下快捷键先复习一下快捷键吧,我们这次就看两个就好。 inline这个叫 inline 的东西快捷键是 Ctrl+Alt+n。这个东西的作用是把当前光标上的东西...

关于人工智能的项目,相信大家都看过或者用过不少了,但它们的大多数看上去都十分“高大上”,让人感觉要掌握他们犹如习屠龙之术一样。事实上,有很多关于人工智能的项目还是十分实用的,而且用途还十分有趣,下面就简单为大家盘点 10 个功能独特的开源人工智能项目。 1. STYLE2PAINTS:强大的为线稿上色的 AI推荐理由:新一代的强大线稿上色 AI,可根据用户上传的自定义色彩给线稿进行上色。项...

之前介绍了关于Intellij IDEA的插件和快捷键内容,非常受欢迎: 最好用的 IntelliJ 插件 Top 10 我最常用的Intellij IDEA快捷键昨天正好看到卓凡分享的这几个装逼利器,推荐给大家平时把玩。 TOP 5 stackoverflow排在第五位的是来自brucege的stackoverflow。 评委点评:这一看似平淡的右键stackoverflow,...

之前在写Spring Boot基础教程的时候写过一篇《Spring Boot中使用RabbitMQ》。在该文中,我们通过简单的配置和注解就能实现向RabbitMQ中生产和消费消息。实际上我们使用的对RabbitMQ的starter就是通过Spring Cloud Stream中对RabbitMQ的支持来实现的。下面我们就通过本文来了解一下Spring Cloud Stream。 Spring...

你是否在寻找更有效率的编程方法? 使用键盘来代替鼠标执行操作并不是一个秘密,这将节省您大量的时间。 如果你只是想执行一次操作,那么这不是什么大不了的事情。但是如果你每天多次使用相同的操作呢?如果将所有这些操作都加起来,就将会对您的生产力产生很大的影响。 我几乎用键盘快捷键来完成我的大部分操作。在我年轻的时候,玩了半职业的实时战略电脑游戏,包括星际争霸和魔兽争霸III。 星际争霸中流行APM...

IntelliJ的十大插件?相信每个人都有自己的选择。我们也同样如此。在这里,我们为您带来我们认为的十大IntelliJ插件。 如果你还是不知道什么是IntelliJ插件,请先阅读our page about plugins。或者访问plugins.jetbrains.com获取更多信息。 1. Grep Console允许您定义一系列的正则表达式,利用它们来对控制台的输出或文件进行测试。每...