首页
学习
活动
专区
工具
TVP
发布

jeremy的技术点滴

专栏作者
197
文章
458101
阅读量
58
订阅数
避免容器中运行的Java应用被杀掉
今天测试环境遇到一个问题,一个Java的容器由于OOM频繁被Killed掉。这个问题还经常出现的,这里记录下解决过程。
jeremyxu
2019-11-07
2K0
工作任务项杂记_201904
如子标题,有需求要在spring boot应用中使用redis缓存,这个还是比较简单的,如下:
jeremyxu
2019-05-15
5380
servicecomb-saga源码解读
前面写过一篇servicecomb-saga开发实战,当时说后面有时间写一篇源码解读,不过工作一忙,就把这事儿忘了,今天终于得闲可以补上这个坑了。
jeremyxu
2019-03-13
1.5K0
servicecomb-saga开发实战
最近的工作主要是微服务框架的设计与开发,期间要解决多个微服务的分布式事务问题,由于要解决的主要场景是用spring boot写的java项目,最终选择了业界成熟的servicecomb-saga方案,这里稍微记录下以备忘。
jeremyxu
2019-03-13
2.4K5
Java开发小技巧
平时开发中有一些小技巧,都不算很有技术含量,但在工作中运用这些技巧确实可以提高工作效率,这里把这些小技分享出来。
jeremyxu
2019-03-13
5320
免编译在JSP中直接写react代码
最近参与了一个历时4-5年的项目,项目是一个后台管理系统,访问量并不高,但经常根据业务方的一些特殊需求,在原有代码添加功能。项目所采用的技术架构还十分老旧,后台采用Struts + Spring + Hibernate, 前台直接使用JSP, 辅以struts与jstl的一些标签。
jeremyxu
2019-03-13
3.4K0
Java VisualVM使用备忘
Java VisualVM使用备忘 一直觉得JDK带的新版诊断工具VisualVM功能都没有原来的jconsole强大,今天偶然翻到了VisualVM的github主页,看了下文档,发现简单配置下,功能还是很强大的。 安装插件 默认带的功能看起来还不如jconsole,但其实装上插件就很强大了。不过我本机默认配置的插件更新地址还是java.net的,根本没法安装插件,在这里找到了对应版本的更新地址,比如我本机是JDK1.8.0_102自带的VisualVM,因此选择https://visualvm.gith
jeremyxu
2018-05-10
9850
apk反编译步骤
最近的工作中需要反编译第三方的apk,以也了解对方的签名逻辑,这里将用到的反编译技巧记录一下。 apk文件转成jar文件 首先需要使用工具将apk文件转成jar文件,这里使用dex2jar,具体使用下面的命令: 1 sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk 这样会在当前目录下生成文件apk_to_decompile-dex2jar.jar。 反编译jar文件 试用过jad、jd-gui、fernflower,结果发现还是IDEA自带的fernf
jeremyxu
2018-05-10
1.8K0
Java开发小技巧_02
最近阿里发布了一个插件p3c,用于进行Java开发规约的检查扫描。由于插件的代码是开源,于是第一时间也翻查了代码,发现目前实现的检查规则主要在/p3c-pmd/src/main/resources/rulesets、/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/standalone目录下。将规则大致看了下,这里将自己平时开发不太注意但它提到的几点记录一下。 注释掉代码时留下注释原因 平时由于某些原因,不会删除代
jeremyxu
2018-05-10
8940
Retrying_Library_For_Java
最近在github上看到一个得了不少星的项目Retrying library for Python,果然还是人家比较有想法,这些重试的逻辑是可以包装为一个库供别人使用的。想到平时自己在写Java代码时,经常还手工写些代码实现重试逻辑,真的挺low的。那么Java里是否有类似的函数库呢?简单搜索了下,发现了两个选择:guava-retrying、 spring-retry。简单比较了下,功能都差不多,但很明显spring-retry更强大一些,支持三种用法:API形式、Annotation形式、XML形式。个
jeremyxu
2018-05-10
1.1K0
Spring Boot学习备忘
Spring Boot学习备忘 Spring Boot简化了基于Spring的应用开发,只需要“run”就能创建一个独立的,产品级别的Spring应用。工作即将使用到Spring Boot,这里将自学Spring Boot的一些操作经验记录一下。 Spring Boot Cli 创建第一个Spring Boot应用有多种方式,我这里选用最简单的Spring Boot Cli方案。 安装Spring Boot Cli 我是使用macOS系统的,已经安装了Java8、maven、OSX Homebrew,安装S
jeremyxu
2018-05-10
7390
mybatis-generator使用备忘
最近要做一个新的项目,项目涉及的业务还比较复杂,表相当多。项目使用的技术框架为SSM。于是决定使用mybatis-generator来生成DAO层大部分代码。使用的过程中遇到一些问题,这里小计一下。 实体对象属性为枚举 为了避免硬编码,希望生成的实体对象有的属性尽量使用枚举。 可以先定义一个枚举。 UserStatus.java public enum UserState implements CodeTypeEnum<UserState> { ENABLED((byte)0), DISAB
jeremyxu
2018-05-10
1.7K0
开发小技巧备忘
今天一段时间一直在忙工作上的事,并没有系统地学习研究某一个具体的问题,但回顾这一个月的工作,发现还是有一些经验可以记录一下的。但这些经验没法系统地整理起来,因此只能算是开发中的杂项了。 杂项一:httpclient典型用法 基础用法 HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost postMethod = null; try { postMethod = new HttpPost(reqUrl); p
jeremyxu
2018-05-10
6440
分发JavaWeb项目之docker方案
最近做了个小的Java Web脚手架工程。工程项目虽小,但算是一个很典型的Java Web项目,依赖于数据库,Java写的后端代码,JavaScript写的前端代码。本来写了一个说明,告诉用户如何将这个工程跑起来,很自然想到有好几步: 安装前后端编译工具 安装数据库,并初始化数据库结构 根据数据库的具体信息,修改项目中的配置文件 编译前端代码 编译后端代码,最终形成war包 将war包部署至应用服务器 想了下,真的好麻烦。突然想到可以使用docker简化应用的分发,于是有了以下尝试,这里记录一下。 改造工程
jeremyxu
2018-05-10
1.1K0
netty3与netty4的区别
今天遇到一个人问我netty3与netty4有什么区别。因为我之前使用netty做过网络程序开发,心里还是有点谱的。很自然地就说到了一些主要区别 一些术语的变化,如Upstream变为了Inbound,Downstream变为了Outbound netty3对每个读或写的操作,还会额外创建一个新的ChannelBuffer对象,这带来了很大的GC压力,为了缓解频繁申请回收Buffer时的GC压力,引入了池化的ByteBufs,当然在使用完Buffer后要注意需使用BufUtil.release释放。 那人再
jeremyxu
2018-05-10
4.7K0
SSM项目脚手架
使用SSM做了好几个项目,今天突然想起来还是建一个脚手架工程,地址在这里,便于以后快速创建这类项目。 SSM项目脚手架项目 在网上找到一个ssm项目的脚手架工程,我把它clone下来,做了少量修改,做出的修改如下: java包都改成personal.jeremyxu包下,也相应地修改了配置文件 springmvc的url-pattern修改为/api/* 拆分了spring配置文件,spring配置文件放置于resources/spring目录下 修改了db.xml里的property-placeholde
jeremyxu
2018-05-10
1.6K0
java中用好cache
在java开发中经常会遇到下面的代码: Graph get(Key key) { Graph result = get( key ); if( null == result ) { result = createNewGraph( key ); put( key, result ); } return result; } 即根据某个Key值,到缓存里查找是否有对应的值,如没有则创建,并把创建的结果保存在缓存里,供下次使用。 上述代码表面上看没
jeremyxu
2018-05-10
6760
Netty框架研究
起因 以前也用Netty做到异步网络编程,用过之后也一直没想过要把Netty拿起来重新研究一翻,直到上周工作中遇到一个棘手的问题。 在我们的项目中基于netty-socketio,我们实现了一个基于WebSocket的浏览器与服务端的请求回应机制。 这里贴一下该机制的大概的代码逻辑,真实项目比这复杂得多。 import com.corundumstudio.socketio.AckRequest; import com.corundumstudio.socketio.Configuration; impor
jeremyxu
2018-05-10
1.6K0
实例变量的懒初始化
今天遇到一个很有趣的问题,由于业务要求,需要懒初始化一个实例变量。 简单方法 很顺手就写出下面的代码。 public class LazyFieldInitializer { private Object obj = null; public LazyFieldInitializer(){ } public void someOp(){ if(obj == null){ obj = new Object(); }
jeremyxu
2018-05-10
2K0
WEB界面测试实践之Selenium WebDriver
工作中需要对web界面进行测试,在网上找了找解决方案,最终找到了Selenium WebDriver。 WebDriver简介 The primary new feature in Selenium 2.0 is the integration of the WebDriver API. WebDriver is designed to provide a simpler, more concise programming interface in addition to addressing some
jeremyxu
2018-05-10
3.8K0
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战,赢鹅厂证书、公仔好礼!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档