- 博客(85)
- 收藏
- 关注
原创 Maven Java EE Configuration Problem
报错:Cannot change version of project facet Dynamic Web Module to 2.5.通过Project---Project Facets 看到Dynamic Web Mudule为2.3,且没办法修改为2.5 解决办法:打开本项目所在路径下的settings目录,找到org.eclipse.wst.common.proje...
2015-03-15 21:24:25
181
原创 Maven构建多模块项目
Maven构建项目,按功能将系统划分为不同的模块,再分别进行开发:一般分类如下:model 数据模型,映射数据库表persist/dao 负责数据的CRUDcore/service 负责核心业务逻辑utils 工具类,封装各种工具类web 视图层,Controller+View 这些模块由于功能的不同,在构建时需要使用不同Maven插件来生成项目:...
2015-03-15 13:23:47
159
原创 Eclipse基础配置
1. 增加堆内存打开eclipse的解压目录,修改eclipse.ini中堆内存参数为 :-Xms512m -Xmx1024m 2. 配置eclipse启动时加载的模块,取消不需要的window-preference-General-Startup and Shutdown 取消:WTP Webservice UI Plug-in、Equinox Provisoning Au...
2015-03-15 12:37:32
160
原创 使用Maven插件部署项目到Tomcat中
实验环境:Eclipse-Kepler + Tomcat7 + Maven3应用场景: 本地开发好之后,利用Maven插件将War包发布到测试环境Tomcat容器中。 【步骤】第一步,编辑 %CATALINA_HOME%/conf/tomcat-users.xml,设置Tomcat用户。<tomcat-users><!-- NOTE: By d...
2015-03-13 15:23:02
145
原创 JVM参数设置
Max Memory(byte): JVM可以向操作系统申请的最大内存空间Free Memory(byte): 释放掉的内存空间Total memory(byte): 当前使用的总内存空间Available processor: cpu核数java.lang.OutOfMemoryError: PermGen space 永久区内存溢出:GC不会清理永久区,因此出现此异常表示永久区内存小,...
2015-03-11 11:59:49
187
原创 压力测试
下载并安装webbenchwget http://blog.zyan.cc/soft/linux/webbench/webbench-1.5.tar.gztar zxvf webbench-1.5.tar.gzcd webbench-1.5make && make install 运行webbenchwebbench -c 200 -t 60 http://...
2015-01-06 19:36:27
113
原创 Redis
服务端:[/root/redis-2.4.7]#:src/redis-server #启动redis,没有指定配置文件,则使用默认配置。默认不是以后台方式运行的 配置redis.conf(一般从redis 目录下cp到etc目录下进行配置)daemonize yes #设置为后台运行 客户端:[/root/redis-2.4.7]#:src/redis-c...
2014-12-18 14:41:05
72
原创 Maven小知识点
设置Maven初始化参数(实际是设置JVM启动参数):set MAVEN_OPTS= -Xms256m -Xmx512m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 关于JVM编码对问题:JVM默认使用操作系统的编码,如window使用GBK作为默认编码当在命令行使用mvn命令的时候,如果POM中指定compile和resourc...
2014-12-11 11:59:34
144
原创 Java环境变量
环境变量不区分大小写,以下都是等效的:JAVA_HOME java_homePATH pathCLASSPATH classpath 临时设置环境变量(某些服务使用特定JDK,则可以再bat文件中临时设置这些环境变量)set JAVA_HOME=c:\local\jdk7set path=%JAVA_HOME%\bin;%path%set CLASSPA...
2014-11-27 11:12:45
128
原创 运行play dependencies命令下载依赖非常慢的解决办法
此方法从stack overflow 得到: http://stackoverflow.com/questions/7157964/playframework-private-repos/8404241#8404241 The key for me getting play to use my nexus repository rather than mavenCentral...
2014-10-23 11:22:18
390
原创 URI文件路径-空格问题
如C:\Documents and Settings路径包含空格,直接传入到URI中会出错。 正确的做法:通过API将普通文件对象转换为URI路径。而且,会自动给文件路径前面加上协议:file:/ URI文件路径与File之间的转换,将日志放到用户目录下:public static void main(String[] args) { String home = Sy...
2014-09-16 09:51:29
769
原创 处理Favicon请求
浏览器自动发起/favicon请求,后台找不到对应资源导致不断抛出异常。 配置一个专门的Controller处理这个请求,直接返回空。 /** * 处理Favicon请求 */@Controllerclass FaviconController { @RequestMapping("favicon.ico") @ResponseBody...
2014-09-15 00:21:26
350
原创 Eclipse中如何调试Web项目
开发中调试WEB项目算是程序员最基本的技能了! 厌烦了开发的时候将WEB项目打好war包,再部署到容器中运行,效率极低,而且修改了程序不能立即生效。 Eclipse中调试Web项目:首选Jetty插件。当然也可以用Tomcat插件,不过比较喜欢Jetty的小巧。使用Jetty有2种方法:POM中配置Jetty插件;run-jetty-run插件,更简单快速,若结...
2014-09-11 23:08:57
592
原创 正儿八经的学技术
IBM-developerWorksSpring事务:http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts1/index.html
2014-09-10 13:53:36
716
原创 Thread pools and work queues
http://www.ibm.com/developerworks/library/j-jtp0730/index.html 线程池的原理:1. 内部维护若干个线程,这些线程一直保持运行/阻塞状态;2. 维护一个队列,通过锁的方式让这些线程从队列中取任务;3. 如果队列没有任务,则阻塞当前请求任务的线程;4. 当有新的任务加入到任务队列时,唤醒与锁绑定的等待集中的线程...
2014-08-10 23:25:57
135
原创 Java core (上篇)
Java中的8种基本数据类型:整型:byte (1字节),short(2字节),int(4字节),long(8字节)浮点型:float(4字节),double(8字节)字符型:char布尔型:boolean 注意:浮点数值不适用于禁止出现舍入误差的金融计算中!如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类 常量关键字f...
2014-08-10 23:25:42
153
原创 使用PlayFramework进行大批量数据插入
JPA---标准EntityManager---实体管理器 Playframework 底层通过Hibernate对数据库进行操作,但是她对Hibernate进行了封装,提供了更好用的API。 大批量数据插入,关键:及时flush(刷新数据到数据库),接着clear(情况内存,防止溢出) 往数据库插入2W多条数据,基本上也就1分钟时间。如果没有使用flu...
2014-08-10 23:21:18
354
原创 PDF转图片
<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>1.8.6</version></dependency> 先转换成多张图
2014-08-09 22:19:21
199
原创 Quick Response
http://javapapers.com/core-java/java-qr-code/ <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>2.2</version>
2014-08-09 22:18:15
376
原创 BlockingQueue+线程池
A.使用阻塞队列存储任务:Runnable,Callable,FutureTaskB.线程池从队列取任务执行:put(),take() import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.ArrayList;im...
2014-08-08 14:57:07
164
原创 异常处理
一个方法不仅需要告诉编译器将要返回什么值,还要告诉编译器有可能发生什么错误。 异常处理正确的做法: 低层次的方法抛出异常,让高层次的方法去捕获异常并通告用户发生了错误 未检查(unchecked)异常:派生于Error类或RuntimeException类的所有异常 异常处理方式:声明异常(推荐做法),即在方法上声明可能发生的已检查异常,交给上层方法去处理...
2014-08-08 14:14:13
176
原创 【Play】异常处理
【异常一、始终无法启动测试单元】 对Play而言,她只允许一个Java文件中包含1个类,或者嵌套类如果1个Java文件中出现2个以上的类,就会报以下异常:这可能跟Play及时编译源码运行有关 如果是app目录下某个Java文件中包含2个以上的类,则启动应用就会抛异常如果是test目录下某个Java文件中包含2个以上的类,则启动测试单元就会抛异常 解决办...
2014-08-05 10:47:21
255
原创 【设计模式】命令模式
命令模式:通过订单实现服务员与厨师的完全解耦服务员不关心订单的具体内容是什么,只需要将订单交给厨师即可角色划分订单:Command服务员:Invoker厨师:Receiver 使用命令模式可以实现工作队列,将接收到的命令放到BlockingQueue中任务执行者从BlockingQueue中获取任务即可 package pattern....
2014-08-03 22:52:40
67
原创 【设计模式】单例模式
* 一些场景需要确保只有唯一的对象存在,如:线程池、网络连接、缓存等 package pattern.singleton;//饥饿式-多线程环境下仍然安全public class Eager { public static Eager instance = new Eager(); private Eager(){} public static Ea...
2014-08-03 16:52:25
52
原创 【设计模式】工厂模式
工厂模式最核心的功能就是完成对象的创建;该模式可以避免直接使用new操作符在客户端创建对象;找出会变化的地方,将其从不变的代码中分离出来! 工厂模式的应用主要分以下4种: 一、静态工厂通过静态方法返回对象。静态方法可以接收参数,然后根据传入的参数决定返回的对象。 二、简单工厂将工厂组合到客户端,由客户端调用工厂来获取对象。 * 简单工...
2014-08-02 23:24:16
110
原创 【设计模式】装饰模式
装饰模式:动态的将责任附加到对象上对于扩展性而言,装饰模式比继承更具有弹性,因为装饰模式利用组合关系关键地方:让装饰者与被装饰者实现同一个接口,或者继承同一个抽象类,目的是为了让它们具有统一的类型类型统一了,方法就可以接收所有的子类型,然后在运行时动态绑定到具体的子类对象上 ===》接口:让装饰者与被装饰者具有统一的类型package pattern.decor...
2014-07-29 00:53:04
67
原创 【设计模式】观察者
观察者模式:当某个事件发生时,通知客户端进行响应,如监听器的原理,即可采用此模式来实现。观察者对主题中某些属性的改变感兴趣,或者对某个事件的发生感兴趣。这些变化将由主题通知观察者。观察者需要先注册到主题中,只要注册到主题中,当事件发生时就会得到通知。当不关心事件是否发生时,可以取消注册。 ===》主题package pattern.observer;pu...
2014-07-28 00:50:31
78
原创 【设计模式】策略模式
策略模式为了满足不同子类具有不同的行为而设计而且,它可以提供行为/算法的互换,使行为具有可变性而且,支持扩展新的行为而不影响原有的代码 Sample1: package pattern.strategy;/** * 策略模式 * 实现一组可相互切换的行为类/算法簇 */public class StrategyExample { publ...
2014-07-27 22:21:33
51
原创 【设计模式】一般性指导原则
使用某个设计模式先问自己3个问题:1. 这个模式是干什么用的?2. 不使用这个模式我会怎么做?3. 用了这个模式我又会怎么做?可以带来哪些好处? 针对接口编程,而不是针对具体编程; 针对接口编程,利用多态,可以在运行时与任何(新)实现类进行绑定,以此达到“对修改关闭”的目的。 变化的地方使用接口进行引用,在运行时动态绑定到某个子类上; 多用组合,少用...
2014-07-27 21:22:37
153
原创 【设计模式】建造者
package pattern.builder;public class BuilderDemo { public static void main(String[] args) { NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8) .calories(100).sodium(35...
2014-07-27 13:20:40
61
原创 【设计模式】工厂&工厂方法&模板方法
工厂:根据不同条件返回不同类型的对象。 工厂方法:通过子类复写父类的(抽象)方法,返回具体对象。 模板方法:定义通用的程序执行流程,某些不确定的步骤在父类中使用抽象方法进行定义,具体实现交给子类。 package pattern.factorymethod;import java.util.Arrays;import java.util.HashSet;...
2014-07-27 01:32:32
166
原创 【设计模式】责任链
责任链设计模式一般原则:当请求被责任链中某个对象处理了,则停止后续调用;否则,将请求继续往下传递。变体:请求可以被责任链中某几个对象处理,也可以分别被每个对象处理一遍。 Sample1:日志记录为例,任务会依次传递到每一个对象上,至于是否处理则由具体对象来决定: DEBUGE级别的,只往控制台输出;NOTICE级别的,往控制台输出,并发送邮件;ERROR...
2014-07-22 00:38:48
92
原创 【apache-commons】CLI
命令行参数解析器用途:对命令行参数进行解析,完成应用程序的配置比如,启动应用的时候,通过命令行指定端口,如果没有指定,则使用默认的。 package org.apache.commons.cli;public class App { public static void main(String[] args) throws ParseException { ...
2014-07-16 23:59:11
77
原创 【线程】线程并发的一些高级API
Lock&Condition Executor任务执行器,通过线程池来完成任务的执行。使用线程池的好处:仅需维护一定数量的线程去执行任务,降低频繁创建或销毁线程而带来的性能损耗。 interface ExecutorService extends Executorinterface ScheduledExecutorService extends Exe...
2014-07-13 20:52:06
145
原创 【线程】使用同步:解决多线程引发的内存一致性错误问题
首先,需要理解一些理论上的东西。 多个线程并发对同一个资源进行操作,很可能发生内存一致性错误。 究其原因,线程很多情况下对资源的操作不是原子的,这些代码会被分为若干条指令去执行,而在一个CPU时间片内又不能将这些指令全部执行完毕。当多个线程同时操作同一个共享资源时,线程B拿着线程A的半成品进行操作,内存一致性错误就发生了。 如何解决?1.同步,即:加锁。通过加锁...
2014-07-12 23:07:36
996
原创 【线程】中断的调用与处理以及设置线程超时
线程中断 //中断主线程 Thread.currentThread().interrupt();//线程自己中断自己 Thread worker = new Thread(); worker.start(); worker.interrupt();//线程A中断线程B ...
2014-07-12 19:19:43
171
原创 不错的网站
看人家讲得多透彻,要学就学这种资料,各位!!! 线程基础http://docs.oracle.com/javase/tutorial/essential/concurrency/interrupt.html 线程并发高级篇http://docs.oracle.com/javase/tutorial/essential/concurrency/highlevel...
2014-07-07 22:25:57
114
原创 【NIO】Chapter 4. Selectors
A single thread can monitor large numbers of channels with readiness selection. The Selectorand related classes provide the APIs todo readiness selection on channels. Selector Basics You re...
2014-06-29 01:44:38
251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人