手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

spring boot整合ehcache缓存框架

时间:2024-10-12 05:23:50

1、打开intellij idea软件,创建spring boot项目,添加maven依赖,代码如下 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.10.5</version> </dependency>

spring boot整合ehcache缓存框架

2、添加@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(); } }; }

spring boot整合ehcache缓存框架

3、在resources目录下添加ehcache.xml配置文件,spring boot会默认读取类根路径下ehcache.xml配置文件,添瑕铆幌约加了一个名为users的缓存空间,代码如下<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false"> <defaultCache eternal="false" maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0" timeToLiveSeconds="600" memoryStoreEvictionPolicy="LRU"/> <cache name="users" eternal="false" maxElementsInMemory="100" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0" timeToLiveSeconds="300" memoryStoreEvictionPolicy="LRU"/></ehcache>

spring boot整合ehcache缓存框架

4、添加一个User实体类,用于缓存测试,代码如下publi罕铞泱殳c 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 + '\'' + '}'; }}

spring boot整合ehcache缓存框架

5、添加一个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; }}

spring boot整合ehcache缓存框架
spring boot整合ehcache缓存框架

6、执行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); }

spring boot整合ehcache缓存框架

7、打印日志信息,展示出ehcache缓存生效,spring boot整合成功,截图如下图所示

spring boot整合ehcache缓存框架
© 手抄报圈