摘要: 众所周知,所有被打开的系统资源,比如流、文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故。 在Java的江湖中,存在着一种名为finally的功夫,它可以保证当你习武走火入魔之时,还可以做一些自救的操作。在远古时代,处理资源关闭的代码通常写 阅读全文
posted @ 2019-03-07 15:53 楼下有位 阅读(1087) 评论(0) 推荐(0) 编辑
摘要: 一、缓冲区 缓冲区时对Java原生数组的对象封装,它除了包含其数组外,还带有四个描述缓冲区特征的属性以及一组用来操作缓冲区的API。缓冲区的根类是Buffer,其重要的子类包括ByteBuffer,MappedByteBuffer、CharBuffer、IntBuffer、DoubleBuffer、 阅读全文
posted @ 2019-03-07 14:10 楼下有位 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 第一步:pom配置环境 先不要管包是做什么的 总之必须要有 否则进坑 第二步:配置application.properties 注意 1.结尾一定要有 #thymeleaf end 否则掉坑 2.#模板编码 spring.thymeleaf.mode=LEGACYHTML5 要想使用LEGACYHT 阅读全文
posted @ 2019-03-07 11:01 楼下有位 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 本文将深入研究Spring的事务管理。主要介绍@Transactional在底层是如何工作的。之后的文章将介绍: propagation(事务传播)和isolation(隔离性)等属性的使用 事务使用的陷阱有哪些以及如何避免 JPA和事务管理 很重要的一点是JPA本身并不提供任何类型的声明式事务管理 阅读全文
posted @ 2019-03-07 10:51 楼下有位 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 文章来源 工具功能概览 整理了一个关于监控工具及其功能的表。下面对这些工具单独详细介绍。 Linux性能监控工具 Linux性能监控工具 top top命令会展示进程的实际活动。默认情况下,它会列出系统上所有cpu密集型任务,并且每5秒钟刷新一次列表。可以对PID(数值),生存时间(最新的排最前面) 阅读全文
posted @ 2019-03-07 09:52 楼下有位 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 在前面两章 SpringBoot入门 、SpringBoot自动配置原理 的学习后,我们对如何创建一个 SpringBoot 项目、SpringBoot 的运行原理以及自动配置等都有了一定的了解。如果我们系统中也想要拥有自动配置的功能,可以自己编写一个starter (启动器),想想就觉得很酷,因为 阅读全文
posted @ 2019-03-07 09:32 楼下有位 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 主程序类的注解 @SpringBootApplication 注解,它其实是个组合注解,源码如下: 最主要的还是三个配置 @SpringBootConfiguration、@EnableAutoConfigration、@ComponentScan 三个注解,下面我们来一一分析。 1.1 @Spri 阅读全文
posted @ 2019-03-07 09:18 楼下有位 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 某天晚上,某环境 ES 出现阻塞, 运行缓慢。于是开始排查问题的过程。 开始 思路:现象是阻塞,通常是 CPU 彪高,导致业务线程分配不到 CPU 时间片,或者内存吃紧,频繁 GC 导致的 STW。 登录到目标服务器,由于 ES 的用户不是 LZ,因此找运维要了 root 权限,登录到服务器。 su 阅读全文
posted @ 2019-03-07 08:10 楼下有位 阅读(821) 评论(0) 推荐(0) 编辑
摘要: 现在基本上所有网站都支持搜索功能,现在搜索的工具有很多,比如Solr、Elasticsearch,它们都是基于 Lucene 实现的,各有各的使用场景。Lucene 比较灵活,中小型项目中使用的比较多,我个人也比较喜欢用。 1.效果展示 我前段时间做了一个网站,搜索功能用的就是 Lucene 技术, 阅读全文
posted @ 2019-03-07 08:07 楼下有位 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 之前在介绍了在spring-boot启动过程中调用runner的原理,今天我们介绍另外一种可以实现相似功能的机制:spring-boot的Listener机制。 通过注册Listener,可以实现对于spring-boot整个生命周期各个状态变化进行监听,然后执行相应的业务代码。我们只需要监听其中几 阅读全文
posted @ 2019-03-07 08:00 楼下有位 阅读(6499) 评论(0) 推荐(1) 编辑
摘要: 在日常的项目开发中经常会遇到这样的需求:项目启动的时候进行一些一次性的初始化工作,如读取加载资源文件、或者执行其它外部程序。 这个时候我们就可以用到spring-boot为我们提供的一种扩展机制--Runner。 在spring-boot中提供了两种Runner接口:ApplicationRunne 阅读全文
posted @ 2019-03-07 07:41 楼下有位 阅读(4695) 评论(1) 推荐(1) 编辑