Mac下在终端启动 Intellij
今天因为手贱,把 Intellij
启动文件 中的agenet
给挪移了一个位置,导致点击 Intellij
应用图标后无法启动,找了各种办法后最终解决问题,最靠谱的方法为2种:
- 通过
Intellij
的日志进行问题查找 - 通过
terminal
启动Intellij
并查看控制台报错。
今天因为手贱,把 Intellij
启动文件 中的agenet
给挪移了一个位置,导致点击 Intellij
应用图标后无法启动,找了各种办法后最终解决问题,最靠谱的方法为2种:
Intellij
的日志进行问题查找terminal
启动Intellij
并查看控制台报错。我们一直都在说传统的 IO属于阻塞 IO,而 NIO
属于非阻塞的 IO.
我一直在理解 阻塞 IO 和 非阻塞 IO 的区别。
看了这么多文章后,今天算是小有所获,可以用形象的语言来表达他们的区别了。
上一篇文章对ThreadLocal
的简单入门,了解了使用场景和使用办法。接下来我们继续聊聊:
ThreadLocal
的内部结构!ThreadLocal
中的WeakReference
是什么?ThreadLocal
是否会触发内存泄露?ThreadLocal
这个东西复杂吗?在我看来,对于初学者而言,还是有些难度的,其内部的存储结构挺饶的,需要沉下心来多刷刷别人的博客,然后自己根据源码、测试以及个人思考慢慢领会。
本文作为抛石引玉,给不清楚的同学给点灵感,也请大神们不吝赐教。
本系列从如下几个知识点进行分析:
ThreadLocal
是什么
ThreadLocal
使用场景有哪些?我喜欢通过实际的案例来引入,学有所用,这样才能学得快。
对zookeeper
的开源框架curator
中关于listener
的使用不算难,这个地方我整理了2篇比较好的文章,对齐用法作出说明。
Linux
服务器上我们通常需要在开机后自动
启动相关的程序。
本文主要整理和记录下工作中用到的关于这方面的知识,方便后续查找。
Tomcat 我已经使用很久了,但是仅仅停留在 IDE 中通过 Tomcat 启动 Web项目,兑取其中很重部署细节以及管理细节都不太清楚,今天趁着项目需要所有对如下几个细节进行总结,并形成文,方便后续查找。
内容包括:
最近有个SpringBoot
项目,需要扫描指定包下带有带有指定注解的类,最开始使用的是hutool
下的 ClassScaner.scanPackageByAnnotation
这个方法进行扫描。
在前期开发阶段工作正常,但是最近在中期部署的时候,将 SpringBoot
项目打包成 jar
后在服务器运行的时候,直接报出了空指针异常,经过查看记录,代码没有在指定包下找到任何一个 class
。
为了解决这个问题我尝试了如下方法:
JDK
本来是 OpenJDK
,更换成了 SunJDK
,无法解决!Guava
提供的 ClassPath.from
,无法解决!war
包后,部署到 tomcat
后运行,成功解决!经过上述测试后发现,只有将项目打包为war 后在 Tomcat下运行才能正常扫描。这下我的心都凉了,因为如果一个SpringBoot
项目还必打包为传统的 war 然后部署,那么SpringBoot
的优势会少很多。
之前腾讯云打折,买了一台腾讯的云服务器,主要打算就是做这个博客。 因为上面运行的是我的博客所以不敢在上面乱折腾,最近恰好看到阿里云的ECS在打折,所以就入手了一台,作为平时测试和开发调试使用。 再部署完基础环境后,启动了一个单机的Zookeeper实例,通过本地客户端发现无法访问。
本文属于对Java线程池的综合思考,如果您对Java线程池还不太了解,可以先收藏。 本文讲解如下几个内容: 当核心线程满时,先创建临时线程还是先加入队列?临时线程工作时间和方式?核心线程和临时线程获取活的方式?只有临时线程才能被销毁吗?何时触发拒绝策略?线程池如何调优?
在最开始学习Spring Cloud
的时候,了解其中有个组件叫做Feign
: 可以通过既定规则在本地消费端存留一份服务提供者的接口,这样消费者便可以直接通过这个接口来进行服务消费。
Spring Cloud
是一个开源方案的整合体,其中的Feign
组件整合的就是已有的一个开源组件Feign
。
Feign
的中文含义是: 假装!
缓存的引入能够帮助DB减轻检索压力,但是如果不能很好的处理数据一致性的问题,那么会导致读取脏数据的问题,解下来2篇文章就总结下几种缓存更新策略:
如果更新缓存
如果删除缓存
上一篇文章提到了2个观点: 缓存必须设置过期时间,可以保证数据的最终一致性。在数据发生变更的同时,重新建立缓存是没有必要的操作。 同时提到了数据更新的时候,删除缓存和更新DB,哪个操作应该先行了? 本文同上一篇文章一样,假设在不为缓存添加过期时间极端情况下,进行思考。 先删除缓存,再更新DB先更新DB,再删除缓存
这篇文章算是对之前阅读、学习、实践的一个总结。 本文主要是讲讲在Spring中,通过@Autowired之类注解,注入的对象到底是什么? 同时引申出一些关于:AOP使用的一些细节。
本文主要介绍SpringMVC对Controller
中对外方法的参数的解析接口HandlerMethodArgumentResolver
,包括如下说明: