多语言展示
当前在线:700今日阅读:6今日分享:31

spring boot整合ehcache缓存框架

为了增加后台应用系统的吞吐量,需要为spring boot项目添加缓存模块,这里选择ehcache缓存框架为例,来详细实践介绍spring boot如何整合ehcache内存缓存框架
工具/原料
1

spring boot框架

2

ehcache框架

3

intellij idea软件

方法/步骤
1

打开intellij idea软件,创建spring boot项目,添加maven依赖,代码如下                                               org.springframework.boot                            spring-boot-starter-cache                                                                   net.sf.ehcache                            ehcache                            2.10.5                  

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();            }        };    }

4

添加一个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 + '\'' +                '}';    }}

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;    }}

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);    }

7

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

注意事项
1

了解一下ehcache的相关基本知识

2

感谢点赞,感谢关注

推荐信息