随笔分类 -  java

摘要:前提:安装maven完成后mvn -version查看版本一,新建WEB 工程mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-webapp-DinteractiveMode=false注:-DarchetypeArtifactId=maven-archetype-quickstart//JAVA项目-DarchetypeArtifactId=maven-archetype-webapp//WEB项目二,修改 阅读全文
posted @ 2014-01-15 15:57 itank 阅读(371) 评论(0) 推荐(0) 编辑
摘要:锁(locking) 业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算 处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中 (可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓 的“锁”,即给我们选定的目标数据上锁,使其无法被其他程序修改。 Hibernate支持两种锁机制:即通常所说的“悲观锁(Pessimistic Locking)” 和“乐观锁(Optimistic Locking)”。一 :悲观锁(Pessimistic L 阅读全文
posted @ 2013-09-09 17:48 itank 阅读(792) 评论(0) 推荐(0) 编辑
摘要:测试方法:在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优 阅读全文
posted @ 2013-07-04 16:05 itank 阅读(24414) 评论(1) 推荐(0) 编辑
摘要:监控 ehcache缓存:1,下载:http://terracotta.org/downloads/open-source/destination?name=ehcache-monitor-kit-1.0.3-distribution.tar.gz&bucket=tcdistributions&file=ehcache-monitor-kit-1.0.3-distribution.tar.gz2.解压缩到目录下,复制ehcache-monitor-kit-1.0.0\lib\ehcache-probe-1.0.0.jar包到application的 /lib目录下3.将以下配置 阅读全文
posted @ 2013-04-26 14:49 itank 阅读(4463) 评论(3) 推荐(1) 编辑
摘要:首先从 http://proxool.sourceforge.net/ 下载proxool-0.9.0RC2.zip解压后,把proxool-0.9.0RC2.jar放到工程的lib文件夹里面。proxool是一个非常强大的连接池工具包,我觉得相比dbcp、c3p0这两个连接池包都要好用,我用loadrunner测试过,这三个连接池的从性能上排名如下:proxool>c3p0>dbcp,特别是dbcp在大并发的情况下总是出现各种异常。详细关于dbcp的介绍请参考 dbcp用户指南,dbcp实现参考tvjody.iteye.com/admin/show/117225。下面是实现pro 阅读全文
posted @ 2013-04-19 09:58 itank 阅读(983) 评论(0) 推荐(0) 编辑
摘要:package com.originalsoft.Test;import java.net.URL;import java.sql.*;import org.logicalcobwebs.proxool.ProxoolException;import org.logicalcobwebs.proxool.ProxoolFacade;import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;import org.logicalcobwebs.proxool.admin.SnapshotIF;/** * @author tan 阅读全文
posted @ 2013-04-16 09:18 itank 阅读(1299) 评论(0) 推荐(0) 编辑
摘要:一,安装环境1.安装spmspm工具是基于node(nodejs的服务平台)的,因此我们需要先安装node 和 npm 下载地址:http://nodejs.org/#download.下载完成后安装即可。node安装完成后,找到cmd命令文件以管理员的方式打开,输入以下命令进行安装:npm install spm -g在此过程中,可能需要你很长的时间等待。(偶尔可能连接失败了,你需要关闭cmd后重新开启并执行同样的命令,过程将继续)安装完成后,恭喜你,可以使用了。2.spm的使用:使用spm其实就是执行cmd命令,安装完成后,你就可以使用命令了 (当然有很多命令的),输入:spm help你 阅读全文
posted @ 2013-04-10 15:25 itank 阅读(4398) 评论(0) 推荐(0) 编辑
摘要:log4j简易入门package test.log4j;import org.apache.log4j.Logger;publicclass HelloLog4j { privatestaticfinal Logger logger = Logger.getLogger(HelloLog4j.class); publicstaticvoid main(String[] args) { logger.debug("This is debug message"); logger.info("This is info message"); log... 阅读全文
posted @ 2013-04-03 11:44 itank 阅读(6563) 评论(0) 推荐(2) 编辑
摘要:Java synchronized详解第一篇:使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。在程序中我们使用了一个简化版本的Account类,代表了一个银行账户的信息。在主程序中我们首先生成了1000个线程,然后启动它们,每一个线程都对John的账户进行存100元,然后马上又取出100元。这样,对于John的账户来说,最终账户 阅读全文
posted @ 2013-04-02 15:20 itank 阅读(264) 评论(0) 推荐(0) 编辑
摘要:socket 通信时会经常遇到粘包问题!尼玛,数据多和频发时概率很高。mina 已经考虑到了这个问题,CumulativeProtocolDecoder这个就是answer!CumulativeProtocolDecoder 类,累积性的协议解码器,也就是说只要有数据发送过来,这个类就会去 读取数据,然后累积到内部的 IoBuffer 缓冲区,但是具体的拆包(把累积到缓冲区的数据 解码为 JAVA 对象)交由子类的 doDecode()方法完成,实际上 CumulativeProtocolDecoder 就是在 decode()反复的调用暴漏给子类实现的 doDecode()方法。具体执行过程 阅读全文
posted @ 2013-03-18 10:35 itank 阅读(3239) 评论(0) 推荐(0) 编辑
摘要:如何使用log4j记录操作员的登录ID在记录日志的时候,我们可能有这种需求,对于每个记录除了知道日志信息外,也要当前登录用户的信息。可以这样解决:使用log4j的MDC在web.xml加入 Filter:<filter><filter-name>set log4j MDC for log2userId</filter-name><filter-class>UserFilter</filter-class></filter><filter-mapping><filter-name>set log4j 阅读全文
posted @ 2013-03-08 13:57 itank 阅读(18758) 评论(1) 推荐(0) 编辑
摘要:在应用程序中处理Jar文件简单介绍了如何使用java.util.jar包提供的API操作jar文件,下面通过一个相对复杂的例子讲述一些Jar文件相关的高级应用。仔细读读这篇文章并参考一下相关的java doc会对你学习java语言有很大的帮助。 下面的应用程序将实现从http服务器装载并执行一个jar文件的功能,比如你的Jar文件的地址为hello.jar。要实现这个功能我们应该首先建立与这个文件的连接然后通过MANIFEST的信息描述得到Main-Class的值,最后装载并运行这个class。这里面需要用到java.net和反射的一些重要知识。这个应用程序由两个类组成:JarClassLoa 阅读全文
posted @ 2013-02-28 17:48 itank 阅读(4702) 评论(0) 推荐(1) 编辑
摘要:像Eclipse它的所有插件的.jar文件都是放在plugin目录下,我们的程序如果也要做成可扩展插件形式plugins在java中如何简单的实现这个功能。1、建立一个工程,并为其增加一个 Interface,命名为ActionInterface.java。该接口为使用者公开了一个方法,你定义的插件必须实现这个接口如下: package org.junesky.classPathTest; public interface ActionInterface { public String action(); } 编译后,将该工程打包为.jar文件。打包方法:1,myeclipse 中... 阅读全文
posted @ 2013-02-27 15:01 itank 阅读(2912) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示