Java代码
妖斩
这个作者很懒,什么都没留下…
展开
-
SpringMVC支持可版本管理的Restful接口
需求移动互联网时代的到来,软件开发的模式也在变化。记得以前做B/S的后台开发,基本上没有Http接口一说,全部是通过渲染模板技术(jsp,freemark)把最终html展示给最终用户。现在完全变了,基于后台接口提供方,我们从来不是针对只是浏览器展示的后台输出,而是各种终端,比如android,ios。所以设计接口的时候一定要小心,一旦放出去的接口可能就永远都难以变动(除非你强制客户端用户升级)。...转载 2018-05-17 16:18:17 · 355 阅读 · 0 评论 -
Java代码获取Nginx代理中真实IP地址
Java代码:public static String getClientIp(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (!StringUtils.isEmpty(ip) && !"unKnown".equalsIgnoreCas...原创 2018-05-15 14:43:21 · 8619 阅读 · 1 评论 -
Java通过phantomjs实现html截图
功能: 实现是卡片分享的功能开始技术选型选的是DJNativeSwing,但是windows是可以使用,发布到linux就不行了。虽然参照前辈方法进行解决,还是一直报org.eclipse.swt.SWTError:No more handles [gtk_init_check() failed]异常。在长时间未解决这个问题。只好一、服务器安装 phantomjs 工具 1、解压安装包pha...原创 2018-05-15 15:48:31 · 4112 阅读 · 1 评论 -
Redis分布式锁
可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。 解铃还须系铃人。加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了加锁代码...原创 2018-08-09 11:09:03 · 125 阅读 · 0 评论 -
common-io-2.0的新功能之文件监控FileAlteration
文件监听中有java自带的fileOberver和fileOberverable这两个通过观察者模式进行监听,例如:在主程序中ResolveFileObserver fileObserver = new ResolveFileObserver(PATH); fileObserver.startWatching();其中ResolveFileObserver 是实现FileObserver类...转载 2018-05-08 11:19:26 · 544 阅读 · 0 评论 -
SpringBoot启动源码探究----configureHeadlessProperty()方法
该方法只做了一件事:设置了一个名为java.awt.headless的系统属性,源码如下:private void configureHeadlessProperty() { System.setProperty(SYSTEM_PROPERTY_JAVA_AWT_HEADLESS, System.getProperty( SYSTEM_PROPERTY_JAVA_AW...转载 2019-06-18 17:15:54 · 3089 阅读 · 0 评论 -
SpringBoot 2.1.5 pom.xml Unknown 错误
解决方法:1、pom文件添加<properties> <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> </properties>2、降低版本改成2.1.1重新update下就可以了...原创 2019-07-04 17:09:59 · 475 阅读 · 0 评论 -
Java 计算两点坐标距离
public static void main(String[] args) { System.out.println(distance_format(getDistance(120.170478,30.273065,120.270478,30.173065,1,2))); } /** * 计算两点地理坐标之间的距离 * @param D...原创 2019-08-01 15:52:01 · 5633 阅读 · 0 评论 -
如何优化 Java 代码
让代码性能更高需要 Map 的主键和取值时,应该迭代 entrySet()当循环中只需要 Map 的主键时,迭代 keySet() 是正确的。但是,当需要主键和取值时,迭代 entrySet() 才是更高效的做法,比先迭代 keySet() 后再去 get 取值性能更佳。反例:Map<String,String>map=...;for(String...转载 2019-10-08 17:07:17 · 183 阅读 · 0 评论