spring boot框架
ehcache框架
intellij idea软件
打开intellij idea软件,创建spring boot项目,添加maven依赖,代码如下
添加@EnableCaching注解,注入自定义KeyGenerator,代码如下@Bean public KeyGenerator keyGenerator(){ return new KeyGenerator() { @Override public Object generate(Object target, Method method, Object... params) { StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName()); sb.append(method.getName()); for (Object obj : params) { if (obj!=null){ sb.append(obj.toString()); } } return sb.toString(); } }; }
添加一个User实体类,用于缓存测试,代码如下public class User implements Serializable { private String id; private String name; public User(String id, String name) { this.id = id; this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return 'User{' + 'id='' + id + '\'' + ', name='' + name + '\'' + '}'; }}
添加一个UserService接口,并生成实现类,代码如下/** * Created by zuli on 2018/10/9. */@Servicepublic class UserServiceImpl implements UserService { @Override @Cacheable(cacheNames = {'users'},keyGenerator = 'keyGenerator') public User findByName(String name) { System.out.println('UserServiceImpl findByName()执行,name='+name); if ('1'.equals(name)){ return new User('1','zuli'); }else if ('2'.equals(name)){ return new User('2','zuli1'); } return null; }}
执行SpringBootEhcacheApplication的main方法,测试缓存是否生效,代码如下public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(SpringBootEhcacheApplication.class, args); UserService userService = context.getBean(UserService.class); User user1 = userService.findByName('1'); System.out.println(user1); User user11 = userService.findByName('1'); System.out.println(user11); User user2 = userService.findByName('2'); System.out.println(user2); User user22 = userService.findByName('2'); System.out.println(user22); }
打印日志信息,展示出ehcache缓存生效,spring boot整合成功,截图如下图所示
了解一下ehcache的相关基本知识
感谢点赞,感谢关注