- 浏览: 643438 次
- 性别:
- 来自: 北京
-
博客专栏
-
-
实战cglib
浏览量:50988
最新评论
-
zhongyuanceshi:
非常厉害。看了下有了整体认识
NanoHttpd源码分析 -
di1984HIT:
xuexile!!
使用Jackson在Java中处理JSON -
小胖vs小猪:
能说明一下jar包的引用情况么。
实战CGLib系列之proxy篇(一):方法拦截MethodInterceptor -
魔主万界DEV:
楼主写的不错啊!赞一个!
一个FTP Pool工具类的实现(Commons Pool) -
yuanliangding:
java里的select不是要用户自己调了?然后拿出key一个 ...
IO系列文章之五:读《Scalable io in java》看Socket网络编程模型演变
文章列表
spring+mybatis配置
- 博客分类:
- Java与开源
mybatis配置部分:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="htt ...
cglib专栏建好了
- 博客分类:
- 随笔/感悟
这几天一直没上iteye,今天一上来发现我前一段时间提交申请的博客专栏已经建好了。
建这个专栏主要是想分享一下我在cglib使用上的一些心得体会,毕竟cglib资料和文档都还不是很完善。
目前已经更新了该专栏的blog一共6篇,我会继续不定期的总结cglib的实例分享出来,希望对大家有所帮助。
最后,感谢iteye。
今天线上出现了数据更新后在手机终端无法获取最新数据的问题。
仔细查看了一下,刚开始认为是ActiveMQ消息队列阻塞导致无法及时更新缓存(原来出现过1次)。
可手工删除redis中对应的key后还是无法重新reload数据,这才意识到是主从同步出了问题。
原来是某应用曾经连错mysql并向slave中新写入了几条数据,后来改为连master,并把写入slave的数据重新写入master表里。导致主从key自增主键不一致使主从同步失效。
简单记录一下解决办法:
1、用root账号登陆slave,执行show slave status;
此处打印出A表同步时insert错误信息(主键 ...
GTD工具doit.im
- 博客分类:
- 随笔/感悟
最近有网友推荐一款基于GTD理论的任务管理工具doit.im。
GTD是Getting Things Done的缩写,据说是源自一本同名畅销书,讲的是如果高效管理时间和任务。
那本书没看过,不过上午根据doit.im的介绍大概了解了一下流程:http://doit.im/cn/features
再说说doit.im,号称“Best Online GTD Service for Getting Things Done”,有资料显示是由国人开发的,我也支持一下。doit.im不但提供了在线web版,同时也支持与iPhone、 Android同步,是一款跨平台的任务管理工具。
上午试用了一 ...
关于MySQL联合索引
- 博客分类:
- RDBMS
总结记录一下关于在MySQL中使用联合索引的注意事项,参考资料:《高性能MySQL》第二版
例:索引包含表中每一行的last_name、first_name和dob(生日)列,即key(last_name, first_name, dob)。
以下情况可以用到索引:
(1)匹配全值(Match the full value):对索引中的所有列都指定具体的值。
(2)匹配最左前缀(Match a leftmost prefix):你可以利用索引查找last name为Allen的人,仅仅使用索引中的第1列。
(3)匹配列前缀(Match a column prefix):例如,你可以 ...
昨天用hibernate-jpa(2.0)时发现一个问题,刚开始以为是查询sql和自己代码的bug。
经反复调试,发现native query不使用join的sql无异常。
使用join的sql如果同时取a,b两张表的id,会导致取出的值完全相同。
例如:
select a.id,b.id from tablea a ,tableb b where a.id=b.aid
查询出来的a.id和b.id的值是完全相同的(mysql里是肯定不一样的)。
但同样的hql使用createquery构造Query就一点问题没有,很是奇怪。
具体原因待查,特此记录下来,欢迎大家共同探讨。
...
关于MySQL导入导出SQL文件
- 博客分类:
- 工作相关
记录一下几个常用的MySQL导入导出命令:
1、Mysql导出整个数据库:
./mysqldump -u username -ppassword --port=3301 --protocol=tcp db > /home/work/BACKUP/db.sql
2、Mysql导出某张表的数据:
导出aaa表及数据
./mysqldump -u username -ppassword --port=3301 --protocol=tcp db aaa > /home/work/local/aaa.sql;
3、SQL查询结果导出文件:
注意使用root权限
SELEC ...
Tomcat调优相关总结
- 博客分类:
- 工作相关
关于Tomcat调优的一些总结,欢迎拍砖。
1、线上环境Java版本:
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)
2、修改$CATALINA_HOME/bin/catalina.sh:
其中有一个CA ...
首先关于Redis,目前某应用redis部署2台机器,做master/slave。
为保证性能,master未开启持久化。
由于数据较重要,slave开启AOF,每秒持久化一次。
master/slave未做读写分离,所有请求均发送到master处理,slave仅作备份用。
由于访问量逐步上升考虑扩展,想到几点,简单记录一下:
以单链表形式多加一台:
master<-slave1<-slave2,用于读写分离,如果master挂了直接将slave1提升为master。
分片:
加一组master/slave,应用靠一致性hash将不同的key分片。
存在的问题: ...
1、本地机器,进入GitBash:
ssh-keygen -t rsa -C "username@PC1"
key:id_rsa //输入key文件名
将生成的2个文件复制到 C:/Users/username/.ssh下
2、登录远程git服务器:
cd ~/.ssh
编辑authorized_keys,将本地生成的.pub文件中的字符串复制到里面,保存即可。
例,格式如下(敏感用xxx替换):
ssh-rsa AAAAB1NzaC1yc2EAAAABIwAAAQEAsPjnVqBmezzMpakKryeYA9TTsald+1QQh2B3btcaoMq ...
这个是目前公司某高并发应用生产环境的JVM启动参数,该应用日pv近亿。
一、先看一下生产环境的Java版本:
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)
二、JVM参数如下(将应用名以xxxxx代替):
java -Xms4g -Xmx4g -Xmn3g -Xss256k -server -XX:PermSize=64M -XX ...
前一段时间尝试使用思维导图工具FreeMind和Freeplane做学习笔记,感觉效果很好。
Freeplane是FreeMind的一个分支版本。
个人认为Freeplane一个很重要的改进是加入了总结节点、支持编辑节点明细,并且节点内文字可以设置样式了,这样比原先用FreeMind能画出更强大的思维导图。赞一个!
但往往画一幅技术总结类的思维导图太过庞大,显示器一屏都无法显示全部,因此导出后看着有点麻烦。这是唯一不爽的地方。
并发编程回顾:线程数据交换器Exchanger
- 博客分类:
- 线程与并发
原先多线程并发编程的学习笔记和代码整理一下贴上来。
---------------------------------
线程数据交换器Exchanger
根据JDK文档描述:
可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给 exchange ...
并发编程回顾:信号量Semaphore
- 博客分类:
- 线程与并发
原先多线程并发编程的学习笔记和代码整理一下贴上来。
---------------------------------
信号量Semaphore
根据JDK文档描述:
一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
个人理解为定义一个信号量同时指定它的许可数量,acquire时许可+1,release时许可-1。如果到达最大许可数时,后面 ...