自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 RocketMQ自定义selector实现消息通道定向发送和拉取

RocketMQ的安装部署请参考官网Quick StartRocketMQ的简单应用请参考官网github样例本篇介绍如何通过自定义selector实现按messageQueue定向发送和接收消息 我们先看看MessageQueueSelector接口public interface MessageQueueSelector { MessageQueue selec...

2017-04-23 20:15:43 4839

原创 mongodb在java中小试牛刀

对mongodb不是很了解的可以去看看我的上一篇博客 mongodb入门 mongodb官方对很多编程语言都提供了ORM框架支持,这里按下不表。本篇以spring data for mongo来简单介绍一下mongodb在java中的使用。 Spring Data提供了repository 抽象方式,可以极大的减少数据访问层千篇一律的类似的重复的代码。 基本DAO都会实现,fi...

2017-04-22 14:38:12 333

原创 mongodb入门

关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。 准备工作:下载安装mongodb 1、启动mongodb# mongodb数据存储路径不能有空格mongod --dbpath=D:/mongodb# mongodb默认使用27017端口...

2017-04-20 20:56:47 141

原创 java系统版本比较

public class VersionUtil { public static int compareTo(String v1, String v2){ return v1.compareTo(v2); }} 

2017-04-16 15:34:53 141

原创 oracle数据库连接配置

本示例以win 7作为数据库测试服务器,主要介绍oracle数据库三大配置文件sqlnet.ora 、tnsnames.ora 、listener.ora。 sqlnet.ora 用在oracle client端,用于配置连接服务端oracle的相关参数tnsnames.ora 用在oracle client端,用户配置连接数据库的别名参数,就像系统中的hosts文件一样lis...

2017-04-13 21:02:14 789

原创 MySQL Group Replication 多机多实例安装配置(Windows环境)

1、下载mysql5.7.17  下载地址 2、解压zip到指定的目录 本机安装目录为:D:\tools\mysql-5.7.17  3、配置mysql环境变量 PATH=D:\tools\mysql-5.7.17\bin;$PATH 注意:如果之前有安装过mysql,请手动卸载并清除注册表信息和mysql服务链接。查看注册表信息,WIN+R键入:r...

2017-02-22 20:34:08 483

原创 Mysql Group Replication 主从(单主)中间件ProxySQL安装配置

注意:第4、第5两步的操作可以在mysql group replication主节点上先行执行。 1、下载安装ProxySQLwget https://github.com/sysown/proxysql/releases/download/v1.3.3/proxysql-1.3.3-1-centos67.x86_64.rpmrpm –ivh proxysql-1.3.3-1-...

2017-02-20 15:02:39 389

原创 MySQL Group Replication 多机多实例安装配置

1、配置hosts 172.16.90.39 node3-01 node3-01.novalocal172.16.90.40 node3-02 node3-02.novalocal172.16.90.41 node3-03 node3-03.novalocal  2、在每个节点上创建数据库实例 mkdir -p /data/mysql/{data,logs}...

2017-02-20 14:20:59 185

原创 MySQL Group Replication 单机多实例安装配置

1、 创建三个数据库实例 mkdir /data/mysql/sockmkdir –p /data/mysql/data/{s1,s2,s3}mkdir /data/mysql/cnfmkdir –p /data/mysql/logs/{s1,s2,s3}cd /data/mysqlchown -R mysql:mysql *cd /usr/local/mysq...

2017-02-20 14:00:14 179

原创 mysql 5.7安装配置

一、安装配置mysql5.71、下载安装包下载地址:http://dev.mysql.com/downloads/mysql/#downloads 2、检查库文件是否存在,如有删除$ rpm -qa | grep -i mysql$ rpm -e mysql-libs-x.x.x.x86_64 –nodeps 3、检查mysql组和用户是否存在,如有删除$ ...

2017-02-20 13:30:18 90

原创 高并发下,如何防止缓存被“击穿”

对于一些设置了过期时间的key,如果这些key可能会在某些时间点被超高并发地访问,是一种非常“热点”的数据。这个时候,需要考虑另外一个问题:缓存被“击穿”的问题。 /** * 启用新的get方法,防止缓存被“击穿” * <p> * 击穿 :缓存在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来, * 这些请求发现缓存过期一般都...

2017-01-22 10:49:28 1411

原创 POI 百万条记录导出工具类

 ExportUtil.javapackage com.rd.lh.util.excel;import java.beans.PropertyDescriptor;import java.io.FileOutputStream;import java.io.IOException;import java.math.BigDecimal;import java.n...

2016-11-08 22:20:39 300

原创 基于spring的redisTemplate的缓存工具类

 1、spring相关配置如下: <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.pool.maxIdle}" /> <!-- 最大能够保持idel状态的对象

2016-10-01 20:38:36 1483

原创 使用spring profile实现多环境切换的简单实现

多环境配置一直都是一件头疼不已的事情,spring自3.1以后引入Profile的方式实现多环境切换。下面我结合个人经验介绍一种简单的配置方式。假设存在三种环境:        dev-开发环境;test-测试环境;pro-生产环境;准备工作:        在工程的resources目录下分别创建开发环境配置文件config-dev.properties、测试环境配置文件co...

2016-10-01 18:41:23 747

原创 基于spring的缓存注解实现

时间原因,这里只贴代码,见谅。package com.rd.ifaes.common.annotation;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.Signature;import org.aspectj.lang.reflect.MethodSignature;import ...

2016-09-22 15:25:30 136

原创 使用Spring框架实现RESTful

RESTful web服务最近有多流行已经无需我多评价。是的,你的确需要它,但如何选择呢?我尝试了不同的Java REST框架,基本上都是Jersey和Spring MVC。我认为大多数情况下Spring是构建RESTful应用程序的首选。如果你已经有了一个Spring app,接下来不需要做任何复杂的配置就可以用Spring开始实现RESTful API了。只要使用标准的注解配置向下面这样...

2016-09-11 20:48:40 223

原创 判断double是否为整数

/** * 判断double是否是整数 * @param obj * @return */ public static boolean isIntegerForDouble(double obj) { double eps = 1e-10; // 精度范围 return obj-Math.floor(obj) < eps; } ...

2016-09-10 18:08:34 2103 1

原创 java实现排列组合

这里就直接贴代码了package com.lh.common.util.permutation;import java.util.ArrayList;import java.util.List;import com.rd.ifaes.common.exception.BussinessException;/** * 统计任三出现的最多的几率的组合 * ...

2016-08-30 16:21:22 326

原创 spring-data-redis RedisTemplateUtils工具类

package com.lh.core.core.util;import java.util.Arrays;import java.util.concurrent.TimeUnit;import org.springframework.data.redis.core.RedisTemplate;import com.rd.ifaes.common.dict.Expir...

2016-08-29 15:06:34 449

原创 延时调度任务demo

  1、定制调度任务:import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.rd.ifaes.core.project.domain.Project;/** * 项目缓存延时调度任务 * @author lh * @version 3.0 * @since 2016-8-...

2016-08-28 20:59:48 127

原创 spring-data-redis 扩展实现时效设置

spring目前在@Cacheable和@CacheEvict等注解上不支持缓存时效设置,只允许通过配置文件设置全局时效。这样就很不方便设定时间。比如系统参数和业务数据的时效是不一样的,这给程序开发造成很大的困扰。不得已,我重写了spring的这两个注解。以下是具体实现。 首先定义@Cacheable和@CacheEvict注解类。package com.lh.common.ann...

2016-08-28 20:23:38 414

原创 spring自定义注解样例

样例的具体内容不在博客里展示,大家自行下载源码看看吧。

2016-05-17 17:21:05 81

原创 Netty TCP协议简单实现

Netty的强大之处在于它的高度抽象和封装,对于使用者来说不必过多关心内部实现。当需要有新的需求时,只需简单的添加或者修改相关的Handler类即可。本章将使用Netty 实现TCP协议,以下为具体实现。 1、服务端实现 TcpServer.javapackage emulator.netty5;import io.netty.bootstrap.ServerBo...

2015-08-18 19:57:50 613

原创 Netty HTTP协议简单实现

HTTP(超文本传输协议)协议是建立在TCP传输协议之上的应用层协议,它的发展是万维网协会和Internet工作小组IETF合作的结果。HTTP是一个属于应用层的面向对象的协议,由于其简洁、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过多年的使用和发展,得到了不断的完善和扩展。本文将介绍如何基于Netty 的HTTP协议栈进行HTTP服务端和客户端的开发。由于Netty的HT...

2015-08-11 14:52:13 383

原创 基于Google Protobuf的Netty编解码技术

Google的Protobuf在业界非常流行,很多商业项目都选择Protobuf作为编解码框架,以下为Protobuf的一些优点:    (1)在谷歌内长期使用,产品成熟度高。    (2)跨语言,支持包括C++、Java、Python在内的多重语言。    (3)编码后的码流小,便于存储和传输。    (4)编解码性能高。    (5)支持不同协议向前兼容。    (...

2015-07-31 13:03:29 175

原创 基于java序列化的Netty编解码技术

    基于Java提供的对象输入/输出流ObjectInputStream和ObjectOutputStream,可以直接把Java对象作为可存储的字节数组写入文件,也可以传输到网络上。对程序员来说,基于JDK默认的序列号机制可以避免操作底层的字节数组,从而提高开发效率。    相信大多数Java程序员接触到的第一种序列化或者编解码技术就是Java默认序列化,只需要序列化的POJO对象实...

2015-07-31 00:00:11 139

原创 Netty入门示例

1、Netty软件包下载:http://netty.io/downloads.html,本示例基于netty-5.0.0.Alpha2.tar.bz22、搭建Netty应用工程     使用eclipse创建一个java工程,新建lib文件夹并将netty-all-5.0.0.Alpha2.jar复制到该文件夹下,然后将jar引入工程。3、Netty服务端开发    TimeS...

2015-07-30 15:19:22 243

原创 致2013年5月

好久没有写东西了,不妥之处,还望斧正!    一、关于离职 五月六号下班的时候,我犹豫了半天,最终还是走进了老总办公室,和老总开始了我的离职谈话。我:陈总,您现在忙吗?老总:嗯,不忙我:我想跟你说个事老总:哦,你说我:我想离职老总:为什么?我:生活压力大老总没说话,然后我接着说:父母在老家给我买了套房子,首付是他们付的,父母说以后按...

2013-05-25 01:20:07 145

final 类型小记

final 类   特点一:类不能被继承  对象引用不可变,但对象的值可变,提高执行效率  特点二:执行速度快     这与java语言的特点以及JVM的编译原则有一定的关系final 方法   方法可以被继承,但不能被覆盖。  如果某一方法不想被子类破坏,可以将方法设置为final类型fianl 参数   值不可变  通常用来定义常量,也可用来作不可变的传递参数 参考...

2012-11-15 10:46:09 84

java增量更新打包工具

Java程序增量更新是一个吃力不讨好的工作,浪费了时间不说,还很容易出现漏掉文件、错放文件位置等问题。如果有一个比较好的管理机制,把这些事情交给程序自动处理就省事的多了。工具尚不成熟,不过用起来比手动去选择增量文件要方便的多。下面就直接上代码了。工具包括三个工具类,一个配置文件,一个程序启动类,具体如下: 文件工具类package cn.lihua.util;impor...

2012-10-27 12:11:23 884

Application级账号锁定及账号独立会话操作

 Application用于存放应用程序级的共享数据,比如用户访问量统计、防止同一账号同一时间多客户端登录等等。一般而言,我们不建议在application中存放数据,尤其是大数据集合,在访问量比较大的网站有时甚至会产生严重的性能瓶颈。 这里仅就账号锁定和账号独立会话两个操作在application中的应用做一个简单的介绍,不妥之处,望不吝赐教。 账号锁定同一账号连续N次(...

2012-09-29 11:38:57 155

JS异常处理小结

 有人说:JavaScript就是为了取悦用户而给开发者带来痛苦的一项技术。页面中,错误在所难免。一般而言,页面错误大致分为两种:程序内部的逻辑或者语法错误、运行中数据错误。前者多称之为错误(error),后则则多称之为异常(Exception)。       处理异常最常用的方式:try-catch-finally,通过异常处理,可以避免程序停止运行,从而具有了一定的自我修复能力。具体使...

2012-08-30 11:39:04 81

关于ShowModalDialog中的Excel导出窗口不能自动弹出的问题

给一个ShowModalDialog添加导出的功能。测试的时候,导出按钮点了N多次,仍不见半点反应,调试发现后台代码有执行,没出出现任何问题。说明是页面哪个地方的设置引起的。突然想起为了让页面在列表头部分点击的时候有自动刷新但不弹出新页面的功能,特意在页面头部分添加了如下代码:<base target="_self">。首先,我把这行代码删除,发现刷新和导出都是可以的。但都会弹出一...

2012-08-27 12:01:06 120

Hibernate 与spring jdbcTemplate共享事物的管理

公司的项目框架搭建可以说是几经周折。之前的项目一直用的SSH框架,老总觉得这种架构开发效率太低了,建议把hibernate去掉或者换成是其他的持久层框架。我把原有的项目中hibernate的部分给去掉,用spring的jdbcTemplate来操作数据库。后来发现,这样做有些时候也是很费劲的,尤其是对大表的操作。为提高开发效率,又引入了hibernate框架。这样一来,即可以通过spring的jd...

2012-08-24 19:35:16 179

原创 三种东西从来不应该放到数据库中

图片、文件、二进制数据数据库提供了对BLOB类型的支持,那把文件塞到BLOB类型里面就一定是正确的?这是不对的!毕竟,在许多数据库语言中处理大字段都不是很容易。把文件保存在数据库中会有一些难题:·   数据库的读/写速度总是比不上文件系统·   数据库的备份越来越大,并且会消耗大量时间·   对文件的访问需要穿越应用层与数据库层后两点是真正的杀手!在数据库中保存缩略图?很好...

2012-08-24 16:40:48 68

Hibernate更新部分字段浅谈

Hibernate更新部分字段浅谈update语句是在Hibernate的Configuration的时候生成的,不能动态改变。为什么update的时候所有的属性都一起update,而不是只更新改变字段,其实这是一个比较值得探讨的问题。如果想要做到只更新改变了的字段,必须做到两点:1、对PO的每个属性设置version进行状态跟踪2、update语句是动态生成的,在实际向数据库更新的时候,依次...

2012-08-17 15:44:21 91

Hibernate视图使用实践

Hibernate反向生成工具生成视图会比普通的表多出一个POJO,hibernate这样做其实也无可厚非,毕竟hibernate在映射文件中需要一个主键,而视图是没有主键的。不得已,hibernate做了一件自认为很聪明的举动,它把所有的列放在一起组成一个组合主键。但这样以来问题来了,如果这些列中有任何一项为空,其他所有列的值都不会映射,这样在页面中,你就会很无语的看着这些明明不为空的列出现了空...

2012-08-09 11:19:39 160

基于Java的FCKeditor

FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合。“FCKeditor”名称中的“FCK” 是这个编辑器的作者的名字Frederico Caldeira Knabben的缩写。 FCKedi...

2012-07-28 14:57:41 84

Struts2对于BigDecimal类型的转换问题

 Struts2对常用的数据类型如String、Integer、Double等都添加了转换器进行对应的转换操作。BigDecimal其实也算作是一种常用的数据类型,但Struts2没有对该类型设置转换器。没有转换器而且传递的值为空的属性,Struts2都给默认成了String类型进行处理。如果处理不当,就很容易造成类型转换异常。 好在Struts2开放了接口,这样如果有极特别的类型...

2012-07-27 18:56:47 101

添加缓存导致的表或视图不存在异常

今天更新了下系统,发现很多地方在访问时都抛出异常:<!--?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /-->严重: ORA-00942: 表或视图不存在Caused by: java.sql.SQLException: ORA-00942: 表或视图不存在...

2012-06-29 15:57:57 86

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除