`
tanhaichao
  • 浏览: 15996 次
文章分类
社区版块
存档分类

使用Leopard Cache

阅读更多
使用Leopard Cache
学习如何使用Leopard Cache。
本指南将引导您使用Leopard Cache操作缓存。
How to complete this guide
你可以从头开始并完成每一个步骤,或者您可以绕过你已经熟悉的基本设置步骤。无论哪种方式,你最终都可以得到可工作的代码。
1、配置maven依赖
在dao模块的pom.xml加入
    <dependencies>
        [...]
        <dependency>
            <groupId>io.leopard</groupId>
            <artifactId>leopard-data</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        [...]
    </dependencies>
    <repositories>
        <repository>
            <id>leopard-snapshots</id>
            <name>Leopard Snapshots</name>
            <url>http://leopard.io/nexus/content/repositories/snapshots/</url>
        </repository>
    </repositories>

2、配置spring
src/main/resources/applicationContext-dao.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <span style='font-weight:bold;color:#ff0000'>xmlns:leopard="http://www.leopard.io/schema/leopard"</span>
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
	<span style='font-weight:bold;color:#ff0000'>http://www.leopard.io/schema/leopard http://www.leopard.io/schema/leopard.xsd</span>">

	<leopard:component-scan base-package="io.leopard.guides" />

	<leopard:jdbc id="jdbc" host="112.126.75.27" database="example" user="example" password="leopard" />
	<leopard:redis id="redis" server="112.126.75.27:6311" />

</beans>
3、创建UserDao接口,用到缓存必须实现IGet接口.
此处为了展现更多接口直接实现了IDelete接口
创建src/main/java/io/leopard/guides/dao/UserDao.java
package io.leopard.guides.dao;

import io.leopard.data4j.cache.api.uid.IDelete;
import io.leopard.guides.model.User;

import java.util.Date;

public interface UserDao extends IDelete<User, Long> {

	@Override
	public boolean add(User user);

	@Override
	User get(Long uid);

	@Override
	boolean delete(Long uid, long opuid, Date lmodify);

}
4、创建UserDao接口Mysql实现
创建src/main/java/io/leopard/guides/dao/mysql/UserDaoMysqlImpl.java
package io.leopard.guides.dao.mysql;

import io.leopard.data4j.jdbc.Jdbc;
import io.leopard.data4j.jdbc.builder.InsertBuilder;
import io.leopard.guides.dao.UserDao;
import io.leopard.guides.model.User;

import java.util.Date;

import javax.annotation.Resource;

import org.springframework.stereotype.Repository;

@Repository
public class UserDaoMysqlImpl implements UserDao {

	@Resource
	private Jdbc jdbc;

	@Override
	public boolean add(User user) {
		InsertBuilder builder = new InsertBuilder("user");
		builder.setLong("uid", user.getUid());
		builder.setString("nickname", user.getNickname());
		builder.setDate("posttime", user.getPosttime());
		return this.jdbc.insertForBoolean(builder);
	}

	@Override
	public User get(Long uid) {
		String sql = "select * from user where uid=?;";
		return jdbc.query(sql, User.class, uid);
	}

	@Override
	public boolean delete(Long uid, long opuid, Date lmodify) {
		String sql = "delete from user where uid=?;";
		return jdbc.updateForBoolean(sql, uid);
	}

}
5、创建UserDao接口Redis实现
创建src/main/java/io/leopard/guides/dao/redis/UserDaoRedisImpl.java
package io.leopard.guides.dao.redis;

import io.leopard.burrow.lang.Json;
import io.leopard.burrow.util.NumberUtil;
import io.leopard.data4j.redis.Redis;
import io.leopard.guides.dao.UserDao;
import io.leopard.guides.model.User;

import java.util.Date;

import javax.annotation.Resource;

import org.springframework.stereotype.Repository;

@Repository
public class UserDaoRedisImpl implements UserDao {

	@Resource
	private Redis redis;

	@Override
	public boolean add(User user) {
		String key = this.getKey(user.getUid());
		redis.set(key, Json.toJson(user));
		return true;
	}

	@Override
	public User get(Long uid) {
		String key = this.getKey(uid);
		String json = redis.get(key);
		return Json.toObject(json, User.class);
	}

	@Override
	public boolean delete(Long uid, long opuid, Date lmodify) {
		String key = this.getKey(uid);
		Long result = redis.del(key);
		return NumberUtil.toBool(result);
	}

	protected String getKey(long uid) {
		return "user:" + uid;
	}

}
6、创建UserDao接口Cache实现
创建src/main/java/io/leopard/guides/dao/cache/UserDaoCacheImpl.java
package io.leopard.guides.dao.cache;

import io.leopard.data4j.cache.CacheLoader;
import io.leopard.guides.dao.UserDao;
import io.leopard.guides.model.User;

import java.util.Date;

import javax.annotation.Resource;

import org.springframework.stereotype.Repository;

@Repository
public class UserDaoCacheImpl implements UserDao {

	@Resource
	private UserDao userDaoMysqlImpl;

	@Resource
	private UserDao userDaoRedisImpl;

	@Override
	public boolean add(User user) {
		return userDaoMysqlImpl.add(user);
	}

	@Override
	public User get(Long uid) {
		// 先到userDaoRedisImpl.get方法查,有数据直接返回
		// 如果redis实现没有数据,就到userDaoMysqlImpl.get方法查询数据。如果有数据将数据传给userDaoRedisImpl.add方法保存并返回。如果mysql实现也没有数据则返回null.
		return CacheLoader.get(userDaoRedisImpl, userDaoMysqlImpl, uid);
	}

	@Override
	public boolean delete(Long uid, long opuid, Date lmodify) {
		userDaoRedisImpl.delete(uid, opuid, lmodify);
		return this.userDaoMysqlImpl.delete(uid, opuid, lmodify);
	}

}
7、在UserService使用UserDao接口
创建src/main/java/io/leopard/guides/service/UserService.java
package io.leopard.guides.service;

import io.leopard.guides.dao.UserDao;
import io.leopard.guides.model.User;

import java.util.Date;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

@Service
public class UserService {

	@Resource
	// 当有xxxDaoCacheImpl存在时,Leopard自动为它增加了@Primary注解
	// 这里会自动注入userDaoCacheImpl.
	private UserDao userDao;

	public boolean add(User user) {
		return this.userDao.add(user);
	}

	public User get(long uid) {
		return this.userDao.get(uid);
	}

	public boolean delete(long uid) {
		return this.userDao.delete(uid, 0, new Date());
	}
}
8、编写UserService测试代码
创建src/test/java/io/leopard/guides/service/UserServiceTest.java
package io.leopard.guides.service;

import io.leopard.guides.model.User;
import io.leopard.test.IntegrationTests;

import java.util.Date;

import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

public class UserServiceTest extends IntegrationTests {

	@Autowired
	private UserService userService;

	@Test
	public void get() {
		this.userService.delete(1);// 先删除记录
		{
			User user = new User();
			user.setUid(1);
			user.setNickname("Leopard");
			user.setPosttime(new Date());
			userService.add(user);
		}
		{
			User user = userService.get(1);
			Assert.assertNotNull(user);
			Assert.assertEquals("Leopard", user.getNickname());
		}

	}

}
总结
恭喜你!您已经可以配置使用Leopard Cache,虽然功能比较简单,你可以在这个基础上扩展出你的业务系统,祝您好运。
分享到:
评论

相关推荐

    MAC OS X 10.5 Leopard使用教程(pdf)

    ### MAC OS X 10.5 Leopard 使用教程关键知识点 #### 安装前建议与准备工作 在准备安装MAC OS X 10.5 Leopard之前,有几个重要的建议需要遵循: 1. **软件兼容性检查**:新系统可能不会与所有现有软件兼容。如果你...

    leopard硬盘安装助手

    使用Leopard硬盘安装助手进行安装时,有几点需要注意: 1. **备份数据**:在进行任何系统级别的操作前,确保已经备份了所有重要数据。硬盘安装过程中可能会抹掉所有现有数据,因此备份是防止数据丢失的关键步骤。 ...

    leopard硬盘安装史重要更新 leopard硬盘安装助手v0.3

    新鲜出炉:leopard硬盘安装史重要更新:leopard硬盘安装助手!!支持iso文件! 1、格式化一盘为fat32,或将盘上所有文件(含隐藏的)删空 2、打开程序,选镜象文件(支持iso文件) 3、目标盘选刚才格的盘,点开始进行镜象 4、...

    Leopard hd install helper v0.3

    因此,在使用前,用户应确保自己的硬件支持Leopard系统,并了解可能存在的兼容性问题。 此外,制作安装映像的过程涉及到对硬盘的读写操作,因此在操作之前务必备份重要数据,以防意外丢失。同时,遵循苹果的软件...

    leopard 主题

    如果你一直对苹果电脑的美观界面感到吸引,但又习惯于使用Windows系统,那么这个主题将是理想的选择。安装后,你的Windows桌面、图标、窗口边框等都将呈现出Leopard的特色,如半透明效果、华丽的 Dock 栏以及精致的...

    MAC OS X 10.5 Leopard使用教程(看完以后不再是菜鸟)-简体.pdf

    MAC OS X 10.5 Leopard使用教程(看完以后不再是菜鸟)-简体.pdf

    leopard硬盘安装工具

    新鲜出炉:leopard硬盘安装史重要更新:leopard硬盘安装助手!!支持iso文件! 1、格式化一盘为fat32,或将盘上所有文件(含隐藏的)删空 2、打开程序,选镜象文件(支持iso文件) 3、目标盘选刚才格的盘,点开始进行镜象 4、...

    Leopard 原版壁纸.rar

    这些壁纸不仅适用于Mac用户,也可以被Windows或其他平台的用户下载使用,以此感受Leopard的美学理念。通过更改壁纸,用户不仅可以个性化自己的电脑桌面,还可以在每次打开电脑时,享受到一种独特的视觉愉悦。 ...

    苹果系统安装助手Leopard

    3. 使用苹果系统安装助手Leopard软件,将ISO镜像写入到U盘中。这个过程会格式化U盘,所以确保备份好U盘中的任何重要数据。 4. 进入Mac电脑的启动管理器(Boot Manager),选择从U盘启动,然后按照屏幕提示进行操作...

    leopard硬盘安装助手v0.3

    总之,"leopard硬盘安装助手v0.3"的发布,特别是其对多ISO文件的支持,标志着安装Leopard系统的效率得到了显著提升,对于习惯于使用苹果电脑的用户来说,这无疑是一个非常实用的工具。在安装和维护Mac OS X Leopard...

    硬盘安装Leopard

    标题“硬盘安装Leopard”指的是将苹果公司的Mac OS X Leopard操作系统安装到计算机的硬盘上,而非使用光盘或USB驱动器进行安装。Leopard是Mac OS X的第十个主要版本,发布于2007年,它带来了许多新功能和性能改进。...

    Leopard0.3.zip

    标题中的"Leopard0.3.zip"表明这是一个与苹果公司的Mac OS X "Leopard"操作系统相关的软件包,版本为0.3。这个压缩文件可能是为了帮助用户在硬盘上安装该系统,尤其是对于那些不熟悉苹果电脑操作系统的Windows用户。...

    Leopard DongJun 主题wb

    三、主题附带的 Styler 皮肤:为逼真模拟 Leopard,对部分按钮及功能设置了隐藏,请在使用中慢慢体会。(在此不再赘述) 四、主题的 shellstyle 脚本 经本人精心编写,使用中,建议开启“状态栏”和“文件夹常见...

    Mac OS X 10.5 Leopard ISO

    **Mac OS X 10.5 Leopard ISO** 是苹果公司在2007年推出的一款操作系统,它是Mac OS X系列中的一个重要版本,代号为“Leopard”。这款系统引入了大量新特性和改进,提升了用户体验,并在苹果计算机硬件上运行得更为...

Global site tag (gtag.js) - Google Analytics