- 浏览: 1248283 次
- 性别:
- 来自: 杭州
最新评论
-
jlotusYo:
博主,真感谢。
Java 密码扩展无限制权限策略文件 -
senninha:
这个。。是api说明吧。。
ScheduledExecutorService 源码分析 -
zoutao2008:
请问大文件如何处理?按你这种方式的话,文件超过200M时就会报 ...
hessian系列之二:上传文件 -
lwj1113:
lwj1113 写道谢谢博主这么细致的demo;在系列五中通过 ...
myBatis系列之五:与Spring3集成 -
lwj1113:
谢谢博主这么细致的demo;在系列五中通过testng测试类跑 ...
myBatis系列之五:与Spring3集成
文章列表
1. compile
编译范围。默认scope。
在工程编译(classpath)和打包时(如war, ear等,会包含该jar文件)有效。
2. runtime
运行时范围,用于运行和测试。
编译代码时不需要该jar包,打war包时会被包含到其中,供容器动态加载其中的 ...
1. 日期
function valiDate(time) {
regex = /^\d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1]) ([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/;
if (!regex.test(time)) {
alert('时间格式不正确:需为yyyy-MM-dd HH:mm:ss格式');
return false;
}
return true;
}
2. 金额
function valiMoney(money) {
var regex = /^\d{1, ...
有N张卡片,标号为从1到N。第一轮抽取到奇数位时,将卡片扔掉,偶数位保留;第二轮扔掉剩下来的奇数位。以此类推,最后剩下的卡片标号为?
1. 列表实现
private static int retrieveLastViaList(int n) {
LinkedList<Integer> list = new LinkedList<Integer>(); // 构建列表
for (int i = 1; i <= n; i++) { // 第一轮
if (i % 2 == 0) {
list.add(i); // 存放卡片
}
...
1. 安装make, gcc和python-dev
make, gcc是Redis的编译工具,python作为Redis的客户端语言
sudo apt-get update
sudo apt-get install make gcc python-dev
如果安装过程中出现依赖问题,可以使用aptitude命令:
aptitude install gcc
2. 安装Redis
i. 下载
wget -q http://download.redis.io/releases/redis-2.8.6.tar.gz
ii. 解压
tar -xzf redis-2 ...
Spring封装了hessian客户端和服务端的通用代码,把实现者和调用者作为bean放到spring容器中管理,简化了开发。
实际生产情况,接口项目里面只定义接口,分别为服务端项目和客户端项目所引用:
1. 接口项目:
pom.xml文件:
<groupId>com.john.spring</groupId>
<artifactId>hessian-intf</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging> ...
hessian较早版本通过 byte[] 进行文件传输;4.0之后支持 InputStream 作为参数或返回值进行传输。
注意:hessian会读取整个文件,如果文件过大,会导致JVM内存溢出。可以通过控制上传文件的大小,设置合理的JVM参数,以及采用随机读取方式来解决。
1. 接口:
一般放在独立的工程中,供服务端和客户端引用
public interface Uploader {
void upload(String filename, InputStream data);
}
2. 服务端:
实现类:
public class FileUploader i ...
Hessian是一个Web Service的轻量级二进制协议,使用起来比较简单。
随着信息技术的发展,不同语言或平台系统之间的交互越来越多,普通Web Service使用起来会比较复杂,Hessian相对简单。
下面介绍下使用Hessian实现异构系统之间的数据交互:
Hessian构建服务和客户端一般需要如下四个步骤:
1. 定义接口API
2. 服务端实现-实现接口
3. 客户端实现-HessianProxyFactory
4. 在serlvet容器中配置服务
一、新建maven web工程,在pom.xml中加入hessian依赖:
<project xmlns=& ...
public class MD5Util {
private static final String MD5 = "MD5";
private static final int THIRTY_TWO = 32;
private static final int SHIFT = 4;
private static final byte BYTE_F = 0xf;
private static final char[] hexChars = { '0', '1', ' ...
myBatis系列之一:搭建开发环境
myBatis系列之二:以接口方式交互数据
myBatis系列之三:增删改查
myBatis系列之四:关联数据的查询
myBatis系列之五:与Spring3集成
myBatis系列之七:事务管理
在myBatis系列之五:与Spring3集成基础上:
1. 往pom.xml添加SpringMVC和Freemarker依赖:
<properties>
<freemarker.version>2.3.19</freemarker.version>
<servlet.version> ...
SpringMVC系列之一、集成JSP
SpringMVC系列之二、集成FreeMarker
SpringMVC系列之三、集成Log4j
在SpringMVC系列之二、集成FreeMarker基础上,
1. 往pom.xml文件添加log4j依赖:
<properties>
<slf4j.api.version>1.7.5</slf4j.api.version>
</properties>
<dependencies>
<dependency>
<group ...
1. SVN服务端的三个目录:
branches:项目分支,当需求发生变化、有新需求、修复漏洞或增加功能时,从主版本创建分支,每个团队和自己的分支交互,避免了相互之间的串扰。
tags:一些里程碑版本的快照。
trunk:项目主版本, ...
1. 序列管理
创建从1开始,自增为1的序列:
-- MySchema: 模式名,可以省略
-- MySeq: 序列名
CREATE SEQUENCE "MySchema"."MySeq" AS INTEGER START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE
NO CYCLE CACHE 20 NO ORDER
查询序列:
SELECT
SEQNAME,
INCREMENT,
"START",
MAXVALUE,
...
1. HTML元素<a href="#" target="_blank">链接</a>
href为链接的地址,#代表当前页面。如:
<a href="http://www.baidu.com" target="_blank">点我</a>
href还可以是javascript函数。如:
<a href="javascript:funcName();" target="_blank">点我</a&g ...
myBatis系列之一:搭建开发环境
myBatis系列之二:以接口方式交互数据
myBatis系列之三:增删改查
myBatis系列之四:关联数据的查询
myBatis系列之六:与SpringMVC集成
myBatis系列之七:事务管理
Spring作为基础框架,可以集成后端框架 ...
myBatis系列之一:搭建开发环境
myBatis系列之二:以接口方式交互数据
myBatis系列之三:增删改查
myBatis系列之五:与Spring3集成
myBatis系列之六:与SpringMVC集成
myBatis系列之七:事务管理
myBatis系列之三:增删改查是基于单表的查询,如果联表查询,返回的是复合对象,需要用association关键字来处理。
如User发表Article,每个用户可以发表多个Article,他们之间是一对多的关系。
1. 创建Article表,并插入测试数据:
-- Drop the table if exists
DROP TABLE I ...