Arthas查看Spring配置
在开发过程经常有同学问:“我这个配置更新提交了,怎么样知道项目中是否已经更新使用新值?” 常用的方法是添加日志打印该值判断是否更新。今天我们用Arthas来实现项目中配置值实时读取。
Arthas 简介
Arthas 是Alibaba开源的Java诊断工具。使用 Arthas 可以很方便帮助我们排查线上问题。下面简单介绍几个常用的命令以及使用的场景。
- jad 命令反编译指定已加载类的源码。在代码修改了不生效,怀疑代码没有部署时可以通过该命令查看源码。
- thread 命令查看当前线程信息,线程的堆栈。线程池线程爆满时用该命令查看阻塞线程;CPU使用率过高用该命令查看占用CPU最高的线程。
- jvm 命令查看当前JVM信息。查看使用什么垃圾回收算法、线程数和阻塞线程数等。
- watch 命令方法执行数据观测。观察方法入参和返回值,或者报错信息等。
- trace 命令方法内部调用路径,并输出方法路径上的每个节点上耗时。查看方法内部调用所有的接口和每个接口对应的耗时,这个可以很好的掌控接口性能质量。
- tt 命令记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测。需要重现某个问题时,需要前端同学配合点击,用这个命令可以代替前端同学,回放之前的请求。
- getstatic 命令可以查看类的静态属性。
- ognl 命令可以查看类的静态属性,并且可以做很多不可以描述的事情!
上面的命令是作为开发经常使用到的,具体怎么样使用Arthas请看官网。
OGNL窃取SpringContext属性
假设大家都知道 SpringBoot 读取配置之后存在 ConfigurableApplicationContext 的 environment 中。如果有不知道的,可以在 PropertySourceBootstrapConfiguration#initialize 方法里打个断点debug调试一波
Arthas查看Spring配置的更多相关文章
- 解决eclipse spring配置报错:cvc-elt.1: Cannot find the declaration of element
解决eclipse spring配置报错:cvc-elt.1: Cannot find the declaration of element 'beans'.Referenced file conta ...
- [SSH 3]以网上商城项目浅谈spring配置
导读:在做ITOO项目的时候,就用到了容器+反射,从而运用了依赖注入和依赖查找.如果看过WCF端的配置文件,那么对于这个spring的配置就很容易理解.本篇博客,是对于自己做的一个小项目中所运用到的s ...
- spring配置mq入门案例
第一步:添加maven配置 <!-- mq --> <dependency> <groupId>org.springframework</groupId> ...
- spring配置加载2次实例问题。
WEB.XML 中SPRING 配置及重复加载问题 Posted on 2012-11-13, 15:48, by tmser, under java 周边 . 项目内存溢出,mat 查看了一下发现s ...
- idea的spring配置
开始使用idea,开始的时候把相关的插件都禁用了,导致在建项目和configuration的时候不出现spring相关字样 到plugins中找到installed的插件,查看spring boot ...
- Spring配置c3p0数据源时出错报:java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
今天在使用Spring配置c3p0数据源时,使用的数据库是mysql,服务器是tomcat,运行时报了一个 java.lang.NoClassDefFoundError: com/mchange/v2 ...
- Spring配置汇总
现在主流的JavaWeb应用几乎都会用到Spring,以下是Spring的配置,以及结合Web的SpringMVC配置的汇总. jar包的引入 与Web项目集成 Spring配置文件 SpringMV ...
- spring配置属性的两种方式
spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...
- spring配置详解
1.前言 公司老项目的后台,均是基于spring框架搭建,其中还用到了log4j.jar等开源架包.在新项目中,则是spring和hibernate框架均有使用,利用了hibernate框架,来实现持 ...
随机推荐
- 网站快速收录/站点快速收录/seo快排技术/seo快速排名/泛域名快速收录/泛目录快速收录
泛目录技术是目前最快速最有效的办法,增加站点的收录方面,这里推荐莲花泛目录 莲花泛目录,完善的技术支持,代码亲自编写,独立研发.业界领先. (这个是seo关键词,请无视,直接看下面的泛目程序介绍)网站 ...
- google中select添加onclick
有下拉跳转框如下所示: <select name="page" size="1" > <option onclick="refurb ...
- 线程的interrupt()
官网解释 If this thread is blocked in an invocation of the wait(), wait(long), or wait(long, int) method ...
- nuxt使用教程
1 引言 Nuxt 是基于 Vue 的前端开发框架,这次我们通过 Introduction toNuxtJS 视频了解框架特色以及前端开发框架的基本要素. nuxt 与 next 结构很像,可以结合在 ...
- 来谈谈MySQL的临时表,到底是个什么东西,以及怎么样产生的
介绍临时表之前,我们首先来看这么一句语句: CREATE TABLE `words` ( `id` ) NOT NULL AUTO_INCREMENT, `word` ) DEFAULT NULL, ...
- OUC_Summer Training_ DIV2_#16 725
今天做了这两道题真的好高兴啊!!我一直知道自己很渣,又贪玩不像别人那样用功,又没有别人有天赋.所以感觉在ACM也没有学到什么东西,没有多少进步.但是今天的B题告诉我,进步虽然不明显,但是只要坚持努力的 ...
- DS博客作业07—查找
1.本周学习总结 1.1思维导图 1.2学习体会 本章学习了顺序表.树表.哈希表的查找方式,学会计算各种查找方式下的ASL 树表部分的b树和平衡二叉树较为复杂,哈希表相对容易掌握 期末要复习的有点多, ...
- tensorflow feeddict问题unhashable type: 'numpy.ndarray'
https://stackoverflow.com/a/49134587 求argmax.加newaxis.转变data类型时尽量用tf自带的函数: tf.argmax.[tf.newaxis, :] ...
- nginx 499 错误码
今天查看nginx的access log 文件,发现类似这种请求: [22/Apr/2014:14:01:12 +0800] "GET / HTTP/1.1" 499 0 &quo ...
- Message NNNN not found; No message file for product=network, facility=TNS
Message NNNN not found; No message file for product=network, facility=TNS Table of Contents 1. 错误信息 ...