关闭

[置顶] 新blog地址: http://hengyunabc.github.io/

新blog地址http://hengyunabc.github.io/新blog切换到github.io 上,先试用一段时间。...
阅读(2720) 评论(0)

[置顶] 详细解析boost中bind的实现

写在前面的话 在C++11之后,std::bind是C++标准库的一个组件了。一开始想弄个C++11的实现来研究下,发现里面用到了可变参数模板(代码变得非常神奇). http://llvm.org/svn/llvm-project/libcxx/trunk/include/functional 还是弄个原始点的boost的实现来研究下。 话说网上关于boost::bind的实现的文...
阅读(12408) 评论(19)

[置顶] C++中虚函数(virtual function)到底有多慢

本文地址:http://blog.csdn.net/hengyunabc/article/details/7461919 虚函数为什么慢,cpu分支预测技术,虚函数到底要调用哪些汇编,虚函数实现的简单图示,虚函数不能内联, 印象中经常看到有人批评C++的虚函数很慢,但是虚函数为什么慢,虚函数到底有多慢呢? 一、理论分析 虚函数慢的原因主要有三个: 多了几条汇编指令(运行时得到对应...
阅读(4715) 评论(6)

[置顶] C++编译器到底能帮我们把代码优化到什么程度?

本文地址:http://blog.csdn.net/hengyunabc/article/details/7170865 一个简单的累加求和程序: TYPE S=0; for(int i = 0;i < SIZE; i++) { S += a[i]; } 很多人都觉得这个程序写得不好,编译器不能生成很好的汇编代码。于是有了以下的几种“优化”: #inc...
阅读(3647) 评论(3)

深入Spring Boot:Spring Context的继承关系和影响

前言对于一个简单的Spring boot应用,它的spring context是只会有一个。 非web spring boot应用,context是AnnotationConfigApplicationContext web spring boot应用,context是AnnotationConfigEmbeddedWebApplicationContext AnnotationConfigEmbe...
阅读(671) 评论(1)

深入Spring Boot:ClassLoader的继承关系和影响

前言对spring boot本身启动原理的分析,请参考:http://hengyunabc.github.io/spring-boot-application-start-analysis/Spring boot里的ClassLoader继承关系可以运行下面提供的demo,分别在不同的场景下运行,可以知道不同场景下的Spring boot应用的ClassLoader继承关系。https://gith...
阅读(782) 评论(0)

深入Spring Boot:那些注入不了的Spring占位符(${}表达式)

Spring里的占位符spring里的占位符通常表现的形式是: 或者@Configuration @Impo...
阅读(1023) 评论(0)

深入JVM分析spring-boot应用hibernate-validator NoClassDefFoundError

问题 可重现的Demo代码:demo.zip 最近排查一个spring boot应用抛出hibernate.validator NoClassDefFoundError的问题,异常信息如下:Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.eng...
阅读(1479) 评论(5)

正确实现用spring扫描自定义的annotation

在使用spring时,有时候有会有一些自定义annotation的需求,比如一些Listener的回调函数。比如:@Service public class MyService { @MyListener public void onMessage(Message msg){ } }一开始的时候,我是在Spring的ContextRefreshedEvent事件里,通过c...
阅读(7311) 评论(2)

详细分析罕见的ClassCircularityError异常导致的StackOverflowError

先打一个广告。greys是一个很不错的java诊断工具:https://github.com/oldmanpushcart/greys-anatomy最近尝试用greys来实时统计jvm里的异常生成数量,在增强Throwable时,发现应用会抛出StackOverflowError。下面记录详细的分析过程。在真正分析之前,先介绍JVM对反射方法调用的优化和greys的工作原理。JVM对反射方法调用的...
阅读(2521) 评论(0)

从java进程里dump出类的class文件的小工具--dumpclass

Serviceability Agent想要查看一些被增强过的类的字节码,或者一些AOP框架的生成类,就需要dump出运行时的java进程里的字节码。从运行的java进程里dump出运行中的类的class文件的方法,所知道的有两种 用agent attatch 到进程,然后利用Instrumentation和ClassFileTransformer就可以获取 到类的字节码了。 使用sd-jdi.ja...
阅读(3266) 评论(0)

应用内置embeded tomcat,并打包为fat jar的解决方案

需求大量的微服务框架引起了一大波embeded tomcat,executable fat jar的潮流。显然spring boot是最出色的解决方案,但是spring boot有两个不足的地方: 不支持配置web.xml文件,对于旧应用迁移不方便 一些配置在web.xml里配置起来很直观,放到代码里配置就难搞清楚顺序了。比如一些filter的顺序关系。 spring boot的方案依赖spring...
阅读(3668) 评论(3)

spring boot executable jar/war 原理

spring boot executable jar/warspring boot里其实不仅可以直接以 java -jar demo.jar的方式启动,还可以把jar/war变为一个可以执行的脚本来启动,比如./demo.jar。把这个executable jar/war 链接到/etc/init.d下面,还可以变为linux下的一个service。只要在spring boot maven plug...
阅读(6649) 评论(0)

spring boot应用启动原理分析

spring boot quick start在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个Web Server。如果之前没有使用过spring boot可以通过下面的demo来感受下。 下面以这个工程为例,演示如何启动Spring boot项目:git clone git@github.com:...
阅读(110032) 评论(31)

禁止JVM执行外部命令Runtime.exec -- 由Apache Commons Collections漏洞引发的思考

Apache Commons Collections远程代码执行漏洞最近出来一个比较严重的漏洞,在使用了Apache Commons Collections的Java应用,可以远程代码执行。包括最新版的WebLogic、WebSphere、JBoss、Jenkins、OpenNMS这些大名鼎鼎的Java应用。这个漏洞的严重的地方在于,即使你的代码里没有使用到Apache Commons Collec...
阅读(4911) 评论(2)

开源全局配置中心XDiamond

项目地址: https://github.com/hengyunabc/xdiamond简介全局配置中心,存储应用的配置项,解决配置混乱分散的问题。名字来源于淘宝的开源项目diamond,前面加上一个字母X以示区别。wiki设计思路在线演示地址:xdiamond.coding.io,登陆选择standard,用户名密码:admin/admin特性 所见即所得,在管理界面上看到的所有配置即项目运行时的...
阅读(17165) 评论(3)

利用github搭建个人maven仓库

缘起之前看到有开源项目用了github来做maven仓库,寻思自己也做一个。研究了下,记录下。简单来说,共有三步: deploy到本地目录 把本地目录提交到gtihub上 配置github地址为仓库地址 配置local file maven仓库deploy到本地maven可以通过http, ftp, ssh等deploy到远程服务器,也可以deploy到本地文件系统里。例如: <distribut...
阅读(15942) 评论(4)

扯谈spring mvc之WebApplicationContext的继承关系

spring mvc里的root/child WebApplicationContext的继承关系在传统的spring mvc程序里会有两个WebApplicationContext,一个是parent,从applicationContext.xml里加载的,一个是child,从servlet-context.xml里加载的。 两者是继承关系,child WebApplicationContext...
阅读(8870) 评论(0)

tomcat ssi配置及升级导致ssi include错误问题解决

最近tomcat升级版本时,遇到了ssi解析的问题,记录下解决的过程,还有tomcat ssi配置的要点。tomcat 配置SSI的两种方式Tomcat有两种方式支持SSI:Servlet和Filter。SSIServlet通过Servlet,org.apache.catalina.ssi.SSIServlet,默认处理”*.shtml”的URL。配置方式:修改tomcat的 conf/web.xm...
阅读(5341) 评论(0)
160条 共11页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1712165次
    • 积分:11722
    • 等级:
    • 排名:第1445名
    • 原创:129篇
    • 转载:29篇
    • 译文:2篇
    • 评论:350条
    博客专栏
    文章分类
    最新评论