`
文章列表
hashmap多线程问题总结: 1、jdk1.8前存在多线程赋值死循环问题 2、所有jdk版本存在多线程赋值丢失数据问题 代码开路(具体原因分析不赘述,网络上很多自己去找): package com.song.javabase; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; /** * Created by feng on ...
       上一篇介绍了分库分表插件,但是多库操作涉及到分布式事务问题,大家都知道分布式事务需要涉及到数据库XA驱动,oracle原本就支持,mysql在5.6版本支持了该属性,atomikos插件封装了该特性的一个中间件。现在来介绍一 ...
       LZ工作快5年了,一直没有接触过数据库分库分表的业务,这不最近借助跳槽的动力,自己搞了一波,用的是dangdang开源的一个分库分表插件,实现了简单的分库分表的功能,话不多说,代码开路,github地址https://github.com/dangdangdotcom/sharding-jdbc。        首先是jar包引用,maven以来如下 <dependency> <groupId>com.dangdang</groupId> <artifactId>sharding-jdbc-core</artif ...
       最近和几个同事想搞一个app项目,但是原生技术储备有限,在技术选择方面遇到一些困难,LZ以前有使用过cordova的经验,但是一直受制于它js展现能力和内存占用过大的弊端,想要尝试一些更新的技术,例如react-native,还有去年阿里开源的weex项目,这两种技术都是采用当前最流行的前端框架,封装了android和ios的原生能力,体验度和原生几乎无差异,在一番权衡之后,我们开启了填埋weex大坑的道路。        weex的安装和部署过程等有机会了再说,在开发的过程中遇到了一个加载本地图片的问题,现在就把解决方法贴出来,供大家参考。        首先加载本地图片 ...
       最近项目中遇到要用html生成pdf文件的需求,一开始研究了下前端插件jspdf,使用h5 canvas绘图生成图片,再把图片生成pdf文件,遇到了各种各样的问题,生成的pdf文件达到20多M,height超过5000浏览器就崩溃,有兴趣的童鞋可以尝试一下,该方案LZ最终放弃了。        接着开始尝试服务端生成,使用freemaker模板生成静态html文件,通过iext生成pdf,网上很多关于renderer.setDocument(dom,null)的用法,LZ尝试后发现效率奇低,最后放弃了,直接使用renderer.setDocumentFromString方法, ...
       好久没来写博客了,感觉自己堕落了,哈哈,LZ糊里糊涂的又换了家单位,空余时间研究了一下nodejs,顺势搞了这个demo,今天来聊聊基于nodejs和activeMQ的消息推送,内容不算复杂,新手也能一看即会。        首先介绍下一点背景,为什么搞这个东西,LZ上家公司是做监控项目的,很多告警都要实时推送到web端,以前的技术架构是flex+corba+mq(自己封装的),早期B/S架构的实时推送无非就两种,一个是基于插件的长连接,另外一个就是轮训或者Comet,前者受限于flash技术的衰败肯定会逐渐退出历史舞台,后者的低效率在数据量较大的情况下有随时崩溃的可能。随着 ...
       前段时间用bio方式,也就是传统io实现了socket的长连接和心跳,总觉着服务端开启多线程管理socket连接的方式过于消耗资源,数据并发的情况下可能会影响到性能,因此就尝试使用nio改进原来的代码。        然而改进的过程却不像我起初设想的那般容易,可以说一波三折,原因主要是nio读写都是字节流,LZ一开始依然通过ObjectOutputStream.writeObject直接向Socket服务端发送数据,然而问题出现了,每次从ByteBuffer解析出来字节流都不一样,LZ使出浑身解数,一个字节一个字节的读取啊,问题没有了,可是由于是长连接,数据怎么解析啊,查资料 ...
       LZ一直没有涉猎过长连接,原因不过多解释,懒可能是其中一个理由。突然有一天觉着是个遗憾,于是自己顺手用Socket搞了一个,包括长连接必须有的心跳机制,和对象的传递,当然用到了JAVA序列化,传递的对象必须实现java.io.Serializable接口。        客户端: package com.feng.test.longconnection; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.i ...
       最近项目中要使用到有关zip文件的压缩和解压的功能,当然了,这些linux或者cmd命令可以轻松实现,但是LZ试着写了一个java版本的工具类,用起来还不错,有需要的童鞋可以直接拿来用,代码开路。 package com.feng.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.En ...
       项目中最近要搞个telnet远程登陆,需要浏览器进行实时交互。我们都知道,浏览器的http协议是无状态的,一次请求,三次握手,状态肯定是保证不了的,那到底该怎么办呢?        现在比较前卫的技术,例如websocket可以做到这一点,但是websocket是基于HTML5开发的,IE9以下版本不能支持,而且需要在tomcat7.0.47以上版本运行,而LZ项目组使用的是1.6版本,因此最终被LZ排除在外。那最笨的也是最有效的就是轮循(polling)了,就是定时刷新,采用ajax局部请求和刷新相关html页面。        贴个完成的页面给大伙瞅瞅,html样式,是 ...
       最近项目有需求要做几个报表,页面涉及行列的合并和分组,费了九牛二虎之力把jsp页面展示给做完了,但是更困难的其实是导出功能,简单的excel导出大致就是第一行标题,后续数据,使用poi包的HSSFWorkbook等工具类就可以实现,这里不做赘述。但LZ这次的需求涉及行和列的合并,带参数的标题头等苦难,用代码控制略显繁琐,且不容易操作。LZ无奈借助百度君,找到jxls模板语言导出模板excel的解决方案,几番尝试后证实,功能可用且相当强大。        首先第一步,引入jar包,最主要的两个,jxls-core-x.x.x.jar和poi-x.x.jar。接下来封装自己的数据 ...
       前段时间,项目组有需求需要对一个千万级的表进行数据同步,目标并不复杂,将用户的一张表数据同步到我们自己的数据库中,当然,中间需要关联几张自己的表数据。        一开始,客户考虑到安全等因素,只提供数据表导出的csv文件,大小约为700多M,数据量1200w。LZ脑子一热,不假思索使用spring+ibatis开始搞起了代码,一个小应用大概用了一上午编写完毕,当时LZ为自己的小成就还沾沾自喜。但在当天下午的实际测试时,LZ被着实打击了一番,系统根本支撑不下去,本机测试数据量达到100多W的时候,系统内存溢出,LZ试图增加环境变量,增加内存配置,数据在达到200w的时候,已 ...
Redis 五种数据结构详解 (string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 String——字符串Hash——字典List——列表Set——集合Sorted Set——有序集合 下面我们就来简单说明一下它们各自的使用场景: 一、Redis String类型 string类型的数据存储是最简单的key-value存储;
Shiro简介Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了。Shiro架构与功能介绍1.认证与授权相关基本概念两个基本的概念安全实体:系统需要保护的具体对象数据权限:系统相关的功能操作,例如基本的CRUDAuthentication:身份认证/登录,验证用户是不是拥有相应的身份;Authoriz ...
第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。   MyBatis 参考资料官网:http://www.mybatis.org/core/zh/index.html     Hibernate参考资料: http://docs.jboss.org/hibernate/core/3.6/reference/zh-CN/html_single/   1.1 Hiber ...
Global site tag (gtag.js) - Google Analytics