您的位置:首页 > 其它

改变 OsCache 缓存文件存储目录

2007-03-12 09:55 253 查看
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left]一、修改 DiskPersistenceListener.java 文件:[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left]package com.jh.xh.hibernate.oscache;[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left]import com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener;[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left]public class DiskPersistenceListener extends AbstractDiskPersistenceListener {[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left] private static final long serialVersionUID = 1L;[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left] private static final String CHARS_TO_CONVERT = "./\\ :;\"\'_?";[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left] public char[] getCacheFileName(String key) { // <1> protected 改为 public[/align]
[align=left] if ((key == null) || (key.length() == 0)) {[/align]
[align=left] throw new IllegalArgumentException("Invalid key '" + key[/align]
[align=left] + "' specified to getCacheFile.");[/align]
[align=left] }[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left] char[] chars = key.toCharArray();[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left] StringBuffer sb = new StringBuffer(chars.length + 10);[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left] for (int i = 0; i < chars.length; i++) {[/align]
[align=left] char c = chars;[/align]
[align=left] int pos = [i]CHARS_TO_CONVERT
.indexOf(c);[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left] if (pos >= 0) {[/align]
[align=left] sb.append('_');[/align]
[align=left] sb.append(i);[/align]
[align=left] } else {[/align]
[align=left] sb.append(c);[/align]
[align=left] }[/align]
[align=left] if (i % 3 == 2) { // <2> 添加此行代码,每三个字符做为目录名;[/align]
[align=left] sb.append('/');[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] sb.append('0');[/align]
[align=left] char[] fileChars = new char[sb.length()];[/align]
[align=left] sb.getChars(0, fileChars.length, fileChars, 0);[/align]
[align=left] return fileChars;[/align]
[align=left] }[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left] public static void main(String str[]) {[/align]
[align=left] System.out.println(new DiskPersistenceListener().getCacheFileName("12341dfkaklakasdfadklskadllkklasdf"));[/align]
[align=left]<!--[if !supportEmptyParas]--> <!--[endif]-->[/align]
[align=left] }[/align]
[align=left]}[/align]
<!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportEmptyParas]--> <!--[endif]-->
二、修改 oscache.properties 文件:
cache.persistence.class=com.jh.xh.hibernate.oscache.DiskPersistenceListener
<!--[if !supportEmptyParas]--> <!--[endif]-->本文出自 “霜之哀伤” 博客,请务必保留此出处http://maomao.blog.51cto.com/115985/20227
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: