Spring容器的事件机制
一.概述
Spring容器暴漏了很多扩展点给框架的使用者,让框架的使用者能够干涉一些容器内部的事情,也让框架的使用能够感知到容器内部发生了什么事情,比如Spring容器在初始化完后,就会广播一个容器初始化完成的事件,然后事件的监听者监听到这个事件后做相应的事情,这也是Spring容器的一个非常有用的扩展点。
Spring容器暴漏了很多扩展点给框架的使用者,让框架的使用者能够干涉一些容器内部的事情,也让框架的使用能够感知到容器内部发生了什么事情,比如Spring容器在初始化完后,就会广播一个容器初始化完成的事件,然后事件的监听者监听到这个事件后做相应的事情,这也是Spring容器的一个非常有用的扩展点。
我们经常会在线上观察JVM运行时GC日志,其实GC日志中有很多信息可以挖掘,比如下面的GC日志信息
[GC [DefNew: 34538K->2311K(36352K), 0.0232439 secs] 45898K->15874K(520320K), 0.0233874 secs]
[Full GC [Tenured: 313563K->15402K(483968K), 0.2368177 secs]
343563K->18402K(520320K), [Perm : 28671K->28635K(28672K)], 0.2371537 secs]
最近发布需求升级一个中间件,一个web应用在启动的时候,偶尔会会报下面的错误,报错的规律无法跟踪,导致应用启动失败。
有时候启动应用就会出现上面的异常,有时候启动应用没有异常,在发布的时候要是机器启动失败,我们就不断重启,直到机器重启成功。
一.概述
我们经常使用Spring框架,Spring帮我托管bean的创建以及bean的管理,同时又暴漏出一些可扩展的地方,方面程序员去干涉bean或者Spring容器的创建。今天有同学问BeanPostProcessor相关的东西,由此很容易想到BeanFactoryPostProcessor,这里总结一下,方便后面在开发的过程中灵活使用。
当JVM退出的时候,把内存中的某块数据写入到DB。分析这个需求,我们需要让应用感知到JVM准备退出了,然后把数据写入DB,然后JVM继续执行退出…
maven现在被广泛用来做项目管理的工具,我们经常在maven的pom文件中指定我们项目依赖的二方库,我们也会经常遇到jar包冲突,类冲突的问题。关于类冲突就是由于maven自己的仲裁机制,把应该引入的jar包给仲裁了,那么maven自己到底是如何仲裁jar包的呢?
今天写了下面的sql语句
1 | select XX,YY from tableXX where XX in ('aa','bb','cc')
|
如何在JAVA代码中获取当前运行JAVA进程的进程ID,通常我们可以在JVM外部执行jps命令看到某一JAVA进程的PID,但是如何在JVM内部获取这个PID呢?
一些常用Linux命令的总结
要想把HBase的源代码梳理清楚,需要在本地调试一下,可能直接看代码也能搞清楚,但是调试能让我们尽快搞清楚HBase的源代码,下面就来看一下如何在eclipse中调试HBase的源代码。