Spring实战之缓存使用key操作示例

本文实例讲述了Spring实战之缓存使用key操作。分享给大家供大家参考,具体如下:

创新互联公司专注于昌江黎族网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供昌江黎族营销型网站建设,昌江黎族网站制作、昌江黎族网页设计、昌江黎族网站官网定制、微信小程序定制开发服务,打造昌江黎族网络公司原创品牌,更为您提供昌江黎族网站排名全网营销落地服务。

一 配置文件

<?xml version="1.0" encoding="GBK"?>

   
   
   
   
   
   
   


二 属性文件

<?xml version="1.0" encoding="gbk"?>

  
   
  
   
  


三 领域模型

package org.crazyit.app.domain;
public class User
{
   private String name;
   private int age;
   public User()
   {}
   public User(String name, int age)
   {
      super();
      this.name = name;
      this.age = age;
   }
   public String getName()
   {
      return name;
   }
   public void setName(String name)
   {
      this.name = name;
   }
   public int getAge()
   {
      return age;
   }
   public void setAge(int age)
   {
      this.age = age;
   }
}

四 Service

1 接口类

package org.crazyit.app.service;
import org.crazyit.app.domain.User;
public interface UserService
{
   User getUsersByNameAndAge(String name, int age);
   User getAnotherUser(String name, int age);
}

2 实现类

package org.crazyit.app.service.impl;
import org.crazyit.app.service.UserService;
import org.crazyit.app.domain.User;
import org.springframework.stereotype.Service;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.annotation.Scope;
@Service("userService")
@Cacheable(value = "users" , key="#name")
public class UserServiceImpl implements UserService
{
  public User getUsersByNameAndAge(String name, int age)
  {
    System.out.println("--正在执行findUsersByNameAndAge()查询方法--");
    return new User(name, age);
  }
  public User getAnotherUser(String name, int age)
  {
    System.out.println("--正在执行findAnotherUser()查询方法--");
    return new User(name, age);
  }
}

五 测试类

package lee;
import org.crazyit.app.service.UserService;
import org.crazyit.app.domain.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest
{
  public static void main(String[] args)
  {
    ApplicationContext ctx =
      new ClassPathXmlApplicationContext("beans.xml");
    UserService us = ctx.getBean("userService" , UserService.class);
    // 第一次调用us对象的方法时会执行该方法,并缓存方法的结果
    User u1 = us.getUsersByNameAndAge("孙悟空", 500);
    // 指定使用name作为缓存key,因此主要两次调用方法的name参数相同
    // 缓存机制就会生效
    User u2 = us.getAnotherUser("孙悟空", 400);
    System.out.println(u1 == u2); // 输出true
  }
}

六 测试结果

--正在执行findUsersByNameAndAge()查询方法--
true

更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


文章标题:Spring实战之缓存使用key操作示例
本文链接:http://myzitong.com/article/jccsdj.html