自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

keepLearning的专栏

以应用为本,技术让世界更美好

  • 博客(77)
  • 资源 (2)
  • 收藏
  • 关注

原创 javaproject更新后仍然报找不到类或属性

在eclipse下使用server 插件添加tomcat等应用服务器运行Project 时,明明类中有某属性,但仍然报找不到,一般是更新项目后没有清理Jar,使用Maven构建时特别容易出现这个问题。可以使用clean,或到项目的server部署目录,一般在eclipse的workspace\.metadata\.plugins\org.eclipse.wst.server

2015-08-10 17:40:09 801

原创 percona xtradb cluster安装步骤

上一篇博客中对比了各种mysql集群方案,本博客将讲解其中在同步复制功能方面比较出色的percona xtradb cluster的安装步骤

2015-04-28 16:38:23 1609

原创 实战体验几种MySQL Cluster方案

MySQL的cluster方案有很多官方和第三方的选择,选择多就是一种烦恼,我们通过实战考察几种解决方案,包括MySQL Cluster, Fabric, Galera

2015-03-31 22:02:46 8927 1

原创 实现spring多数据源以支持saas或手机App的多公司模式

当我们开发saas或手机应用程序,涉及多公司时,要求每个公司使用一个数据库,如何配置spring数据源使得每个公司使用不同的数据库连接?实现原理:自己新建一个MultiClientDataSource类(实现DataSource接口)去代替原来注入dataSource的ComboPooledDataSource,MultiClientDataSource类的实现精华在于使用一个map,用公司id(did)作为key,value为connection,在getConnection方法中判断是否在map中已

2015-03-30 20:37:46 3449

原创 使用ehcache时如何持久化数据到磁盘,并且在应用服务器重启后不丢失数据

使用ehcache时如何持久化数据到磁盘,并且在应用服务器重启后不丢失数据1、如何持久化到磁盘2、配置文件修改3、系统初始化时添加4、修改ehcache源码另外,持久化到硬盘的对象都需要是可序列化的,用以下方法处理:

2015-03-30 14:56:49 17647 2

原创 代理模式和java动态代理

代理模式的作用及使用场景使用代理模式的根本目的在于:如何在不直接操作对象的情况下,对此对象进行访问?常用的场合包括:1)延迟加载;2)在调用实际对象的方法前后加入某些业务逻辑(作用有点像spring的AOP)JAVA动态代理JAVA提供了动态代理类以供用户方便地实现代理模式

2015-03-30 11:39:12 908

原创 Maven作用、使用配置及注意事项

1、Maven能做什么2、下载及安装3、eclipse插件m2e 安装及配置4、使用m2e插件创建maven项目5、构建项目6、如何配置各项目使用的jdk7、添加jar包

2015-02-16 17:26:09 6555

原创 linux下单独安装ab(Apache Benchmark)

很多网上介绍的都很旧了,最快的方法:yum install httpd-tools完成后,就可以直接运行ab

2014-12-06 11:42:17 15992 2

原创 用jrebel实现 jvm热部署,修改类不用重启tomcat

我们用eclipse开发时经常遇到一个麻烦的问题是修改类文件后需重启tomcat才能生效,即使使用一些tomcat插件,有时修改了方法名或添加了类,也需要重启。使用获得jolt大奖的作品jrebel,就能轻松实现 jvm热部署,无论任何情况修改类都不用重启tomcat

2014-11-27 20:47:52 4864 2

转载 一篇很全面的freemarker教程

copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:格式部分,不会输出 3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出 4,FTL指令

2014-11-27 11:39:35 798

原创 使用explain分析及优化由多表(三个以上)组成的视图性能

使用explain分析及优化由多表(三个以上)组成的视图性能总结:1、建立多表(三个表或以上)关联视图时,如果是主表和副表都有的字段,尽量使用主表的字段(特别是主表的主键)2、副表的字段(无论是普通字段还是主键、索引字段)作为查询条件对查询都没有帮助,都需进行全表检索

2014-11-10 15:01:47 2330

原创 几种outofmemory的解决方法

几种outofmemory的解决方法:1. java.lang.OutOfMemoryError: PermGen space2. java.lang.OutOfMemoryError: Java heap space

2014-11-05 09:42:20 19601 5

原创 Tomcat设置成NIO时,使用的线程池

设置成NIO时, <Connector port="8088" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads属性是没用的,因为默认使用的是NIO的线程池,除非你使用了executor属性,设置了特定的线程池本人已进行过测试,使用Http11NioProtocol,同时将maxThreads设成200,让后进行1000个并发请求,仍然可以通过,设置成http1.1时是会报错的另外,某些tomcat文档中说Http11Ni

2014-11-03 19:52:53 2637 1

原创 mysql 编程注意事项及常用字符串处理函数

一)建立存储过程时报SQL错误( have an error in your SQL syntax;....)建立PROCEDURE等类型过程前需加上delimiter // ,最后也要以// 结尾,例如二)变量作用域存储过程内,使用DECLARE定义的变量,既可以使用@访问,也可以不用@,区别是:使用@访问的是session 级的变量。 在整个SESSION可见,不仅是在你的存储过程中可见。因此存储过程内访问DECLARE定义的变量,都不要使用@另外,使用@@是系统级的变量三)常用字符串处理

2014-10-31 14:39:47 1163

原创 多数据库下activiti的流程定义缓存问题

多数据库下activiti的流程定义缓存问题。我们的产品是支持多公司使用的,各个公司分别使用不同的数据库,因此不同公司下activiti生成的流程定义ID有可能重复(ACT_RE_PROCDEF的ID_字段),例如A公司和B公司都存在名为Proc:1:104的流程。这时候,activiti的缓存机制只会加载其中一个到内存中(先使用的先加载),因此就会出现A公司使用了B公司流程的问题。

2014-10-30 15:24:25 4014 1

原创 使用shell命令分析统计日志

需要统计用户日志信息,分析出用户行为时,用shell往往能方便地取出很多数据,取出后再放置到excel中统计。例如:统计日志中含loadCustomProcess这个地址的访问,按访问耗时排序:grep "loadCustomProcess" /home/workflow/socket.txt | awk -F " " '{print $11}'|awk -F ":" '{print $2

2014-10-24 14:33:40 2842

原创 使用mysql-mmm实现MySQL高可用集群

背景:之前实现的mysql同步复制功能(见笔者之前文章http://blog.csdn.net/kingofworld/article/details/39210937)只是双机热备功能,还不能做到Mysql链接的自动切换。本配置实现真正的mysql集群,使得在某台机子的mysql应用停止时,能让应用程序自动切换到另外一台机子的mysql连接,实现应用的高稳定性,并且使得扩展Mysql服务成为

2014-10-13 15:30:21 3151

原创 mysql主键设置成auto_increment时,进行并发性能测试出现主键重复Duplicate entry 'xxx' for key 'PRIMARY'

mysql主键设置成auto_increment时,进行并发性能测试出现主键重复Duplicate entry 'xxx' for key 'PRIMARY'解决方法:在my.cnf的[mysqld]片段中添加设置innodb_autoinc_lock_mode=0同时注意调大jdbc的活跃链接数,如设置 jdbc.maxActive=300,因为设置innodb_autoinc_lo

2014-09-28 15:45:14 7121

原创 mysql5.6配置同步复制的新方法以及常见问题的解决方法

mysql5.6配置同步复制的新方法以及常见问题的解决方法

2014-09-11 21:00:34 3213

原创 Access denied for user 'root'@'127.0.0.1' (using password: YES)

在java项目中使用连接串设为 localhost 时报以下错误,但在服务器中使用mysql -u root却可以登录2014-08-29 09:05:29,181 WARN com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1841) - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@67618412 -- Acq

2014-08-29 10:48:14 12127

原创 通过tar包升级mysql5.6

1、备份停止mysql /etc/init.d/mysqld stop备份数据库文件: 看my.cnf下配置的data文件目录,一般是放到 /var/lib/mysql/,复制 /var/lib/mysql/下的数据库文件到安全的目录 cp -r /var/lib/mysql   /home/workflow/mysqlbak/再将 /etc/my.cnf 备份一下,然后删除

2014-08-21 11:40:32 844

原创 scrum中的白板管理

上周开始我们的团队开始使用白板管理方法:1、每周将每个人的任务写在小贴纸上,自己评估出工作量和计划完成时间(任务来自于用户故事,详见附件);2、每天早上开例会,大家讲述今天要做的任务;3、将当天处理的任务贴在白板上doing泳道上,第二天早上大家再站在白板前讲述完成情况,将完成的工作贴到done泳道。亲身体验到这种管理方法的优点:1、每天早上开例会,大家都了解到团队成员的工

2014-07-31 15:39:10 1650

原创 如何在hibernate+mySQL中使用HQL的cast语句

问题描述:在hibernate+mySQL

2014-04-23 14:16:53 2952

转载 hibernate的hql模糊查询例子

一个做过的例子。。Java代码  public List searchTelephone(String district, String name) {          List list = new ArrayList();          StringBuffer hql = new StringBuffer();          hql.appe

2014-04-02 15:37:47 3533

原创 13个小球的IQ题

问题:13个小球外形和大小一样,只有一个重量不一样,怎样用天平称3次,就知道哪个是不一样的答案:

2014-03-13 23:22:19 1513

原创 Activiti 5 使用ab并发测试100个并发失败

使用ab -n 1000 -c 100 测试时,cmd界面出现apr_poll: the timeout specified has expired后台异常出现:Error accessing PooledConnection. Connection is invalid.解决方法:数据库链接池数量问题,Acitivit 的数据库链接配置默认是10个,设置为大一点就可以。在acti

2014-03-10 15:42:33 4125

原创 Apache benchmark 使用

1. 并发测试同时对Web服务器进行10个并发请求,直到进行到100个请求为止。ab -n 100 -c 10 http://www.example.com/ 2. 时间测试下面我们使用以下命令来模拟10个用户在20秒的时间内同时访问网站:ab -c 10 -t 20 http://www.example.com/ 该命令不包含n标记,但默认情况下包含该标记并且使用t选项时

2014-03-07 18:01:51 1047

原创 启动tomcat时,弹出窗口出现错误后一闪而过

在CMD运行startup.bat启动tomcat时,弹出窗口若出现错误后一闪而过,看不到错误信息解决办法:打开startup.bat,通过使用run命令在原有启动窗口显示出错信息。在startup.bat中找到:call "%EXECUTABLE%" start %CMD_LINE_ARGS%,然后将start改为run即可。至此,Tomcat启动就不会弹出新窗口了。

2014-03-05 09:08:57 2805

原创 mysql 配置日志及MONyog监控工具使用

在my.ini 下的 [mysqld] 标签下添加 (注意:如果服务的命令参数中带有--defaults-file="xxx\MySQL Server 5.6\my-default.ini" ,即需修改my-default.ini,若没有指定即默认配置文件为my.ini)[mysqld]general_log=ON启动后,即在  \data 目录下生成  “机器名.log" 的

2014-02-27 17:03:38 2420

原创 jbpm5.4安装到mySql

一、下载安装ANT:二、修改配置文件

2014-02-26 10:12:08 1054

原创 jBPM学习笔记

最近通过学习JBPM4了解了JBPM的功能和设计理念,下面用笔记概述:jBPM4是一套提供了包括流程引擎、数据库脚本、web流程定义工具、eclipse流程定义工具以及流程操作API的工作流产品。架构和设计理念:jBPM4通过实现了PVM(流程引擎)的概念,使得用户可以用自定义流程语言运行在jbpm上,目前支持jpdl、bpel以及seamflow。jBPM4的结构特点:

2014-01-12 23:11:18 992

原创 JVM优化策略

1、由于fullGC比minorGC的成本高很多,因此尽量将new的对象放在新生代中。策略是将新生代空间调大,因为新生代太小,则系统会将对象放到老年代。2、大对象进入老年代。因为如果大对象占用了新生代空间,则会导致系统将大量小的新生代对象放入到老年代中,这对GC来说很不利。因此尽量避免使用短命的大对象。-XX:PretenureSizeThreshold设置对象进入老年代的阀值,对象大小超过这

2014-01-01 14:22:40 1112

原创 JVM内存模型及垃圾回收算法

JVM内存模型总体架构图及垃圾回收算法

2013-12-31 17:29:44 5828 1

转载 Spring MVC和Struts2的区别

1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同。2. 性能:spring会稍微比struts快。spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样。spring3 mv

2013-12-29 22:09:49 721

原创 Tomcat常用参数设置

tomcat的默认值在一般情况下都是性能最好的选择,除了堆栈内存外启动tomcat时设置的内存参数及设置准则:-Xms   设置JVM启动时的堆栈内存的大小-Xmx   设置JVM最大的堆栈内存大小一般都建议将这两个值设置成一样大小,因为重新分配时会耗费性能。内存设置过小,会导致tomcat运行过慢,或者容易报OutOfMemoryError错误信息,使运行不正常。内存设置过大,可能出现系统无法分配如此多内存而导致启动tomcat失败,要么正常启动,但耗费过多计算机内存,使其他应用程序无法正常运

2013-12-28 23:15:24 751

转载 HTTP Keep-Alive

HTTP Keep-AliveKeep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。市场上 的大部分Web服务器,包括iPlanet、IIS和Apache,都支持HTTP Keep-Alive。对于提供静态内容的网站来说,这个功能通常很有用。但是,对于负担较重的网站来说,这里存在另外一个问题:虽然为客户保留

2013-12-28 22:29:23 2252

原创 JAVA 非阻塞IO原理

1.  基本概念IO是主存和外部设备(硬盘、终端和网络等)传输数据的过程。IO是操作系统的底层功能实现,底层通过I/O指令进行完成。2.  nio简介nio是java New IO的简称(并不只是指非阻塞IO),在jdk1.4里提供的新api。Sun官方标榜的特性如下:为所有的原始类型提供(Buffer)缓存支持。字符集编码解码解决方案。

2013-12-28 21:10:59 3160

原创 synchronized(object)的应用场景以及与synchronized修饰方法的区别

synchronized(object)的作用原理是:在object内有一个变量,当有线程进入时,判断是否为0,如果为0,表示可进入执行该段代码,同时将该变量设置为1,这时其他线程就不能进入;当执行完这段代码时,再将变量设置为0。虽然可以通过synchronized 关键字来修饰方法,但是不同的线程如果创建了各自的对象实例,多个对象实例调用方法时仍然是异步的。如果想保证代码块在任务情况下都同步,即代码块在程序的中同一时刻只被一个线程调用,即需要使用synchronized(object)。

2013-12-28 14:36:53 2172

原创 测量web负载的工具

几个比较著名的测量web负载的工具:Apache Benchmark  (http://httpd.apache.org)Siege   ( http://www.joedog.org/JoeDog/Siege)Apache Jakarta的JMeter ( http://jakarta.apache.org/jmeter)Faban ( http://faban.suns

2013-12-26 14:57:18 1003

原创 一些常用设计模式的应用场景

创建型模式构建者(builder)当创建一个类的过程比较复杂时(例如要组合对象、以及判断构造参数是否足够和合法),用专门的类(如建立一个专门的Builder类)和方法将这个创建的过程封装起来。工厂方法(Factory Method)给方法传入类的名称,方法给你返回你想要的类实例,现在这个模式的功能被spring框架IOC取代抽象工厂(Abstract Factory)

2013-12-26 12:39:58 6235

MRPII制造资源计划基础-陈启申

对MRPII制造资源计划讲解最经典的教程

2009-02-17

空空如也

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

TA关注的人

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