麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

使用Leopard Cache

2019-11-14 22:55:34
字體:
來源:轉載
供稿:網友
使用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" xmlns:leopard="http://www.leopard.io/schema/leopard"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.leopard.io/schema/leopard http://www.leopard.io/schema/leopard.xsd"><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> {@Overridepublic boolean add(User user);@OverrideUser get(Long uid);@Overrideboolean 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;@Repositorypublic class UserDaoMysqlImpl implements UserDao {@Resourceprivate Jdbc jdbc;@Overridepublic 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);}@Overridepublic User get(Long uid) {String sql = "select * from user where uid=?;";return jdbc.query(sql, User.class, uid);}@Overridepublic 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;@Repositorypublic class UserDaoRedisImpl implements UserDao {@Resourceprivate Redis redis;@Overridepublic boolean add(User user) {String key = this.getKey(user.getUid());redis.set(key, Json.toJson(user));return true;}@Overridepublic User get(Long uid) {String key = this.getKey(uid);String json = redis.get(key);return Json.toObject(json, User.class);}@Overridepublic 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;@Repositorypublic class UserDaoCacheImpl implements UserDao {@Resourceprivate UserDao userDaoMysqlImpl;@Resourceprivate UserDao userDaoRedisImpl;@Overridepublic boolean add(User user) {return userDaoMysqlImpl.add(user);}@Overridepublic User get(Long uid) {// 先到userDaoRedisImpl.get方法查,有數據直接返回// 如果redis實現沒有數據,就到userDaoMysqlImpl.get方法查詢數據。如果有數據將數據傳給userDaoRedisImpl.add方法保存并返回。如果mysql實現也沒有數據則返回null.return CacheLoader.get(userDaoRedisImpl, userDaoMysqlImpl, uid);}@Overridepublic 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;@Servicepublic 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 {@Autowiredprivate UserService userService;@Testpublic 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,雖然功能比較簡單,你可以在這個基礎上擴展出你的業務系統,祝您好運。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久国产视频 | www.热| 97精品视频在线观看 | 精品久久久久久久久久久久久久 | 久久精品av| 牛牛碰在线 | 91久久综合 | 中文字幕在线免费播放 | 久久草草亚洲蜜桃臀 | 国产精品国产三级国产在线观看 | 草操影院 | 欧美成人高清在线 | 黄色免费入口 | 操皮视频 | 精精国产xxxx视频在线播放7 | 欧美成视频在线观看 | 免费国产不卡午夜福在线 | 香蕉久久久 | 日本欧美一区 | 国产黄色一区二区 | 精品伊人 | av电影院在线观看 | 欧美黄色一级片在线观看 | 色播久久| 亚洲精品a级 | 毛片在线播放视频 | 成人短视频在线观看 | 久久国产精品久久精品国产演员表 | 一区二区久久精品66国产精品 | 爱唯侦察 国产合集 亚洲 | 欧美日韩成人一区二区 | 国产一区二区三区影视 | 国产午夜精品理论片a级探花 | 国产男女爽爽爽爽爽免费视频 | 国产成年人视频 | 亚洲第一成人av | 国产亚洲精品综合一区91555 | 亚洲va国产va| 欧美成在线视频 | 国产91久久精品一区二区 | 久久久久久久久久亚洲 |