亲宝软件园·资讯

展开

Java中的JetCache

​ 心城以北   ​ 人气:0

1.JetCache 是什么?

JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用。 JetCache提供了比SpringCache更加强大的注解,可以原生的支持TTL、两级缓存、分布式自动刷新,还提供了Cache接口用于手工缓存操作。 当前有四个实现,RedisCacheTairCache(此部分未在github开源)、CaffeineCache(in memory)和一个简易的LinkedHashMapCache(in memory),要添加新的实现也是非常简单的。

全部特性:

2.使用方法

    // redis
    implementation 'org.springframework.boot:spring-boot-starter-data-redis'
    implementation 'org.apache.commons:commons-pool2'
​
    // jetcache
    implementation 'com.alicp.jetcache:jetcache-starter-redis:2.6.2'
jetcache:
  statIntervalMinutes: 15
  areaInCacheName: false
  local:
    default:
      type: linkedhashmap
      keyConvertor: fastjson
  remote:
    default:
      type: redis
      keyConvertor: fastjson
      valueEncoder: java
      valueDecoder: java
      poolConfig:
        minIdle: 5
        maxIdle: 20
        maxTotal: 50
      host: 127.0.0.1
      port: 6379
package io.zhengsh.order;
​
import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
import com.alicp.jetcache.anno.config.EnableMethodCache;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
​
@MapperScan("io.zhengsh.order.mapper")
@SpringBootApplication
@EnableMethodCache(basePackages = "io.zhengsh.order.service")
@EnableCreateCacheAnnotation
public class OrderApplication {
​
    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class);
    }
}
public interface OrderService {
​
    OrderVo get(Long id);
​
    OrderVo createOrder(OrderDto orderDto);
}
​
// 实现类
@Service
public class OrderServiceImpl implements OrderService {
​
    private Logger logger = LoggerFactory.getLogger(OrderServiceImpl.class);
​
    @Override
    public OrderVo get(Long id) {
        logger.info("OrderService#get invoke!");
        Order orderVo =  new OrderVo();
        orderVo.setCode("100");
        return orderVo;
    }
​
    @Override
    public OrderVo createOrder(OrderDto orderDto) {
        logger.info("OrderService#createOrder invoke!");
        return null;
    }
}
@SpringBootTest
class OrderServiceTest {
​
    private Logger logger = LoggerFactory.getLogger(OrderServiceTest.class);
​
    @Autowired
    private OrderService orderService;
​
    @Test
    void get() {
        OrderVo orderVo = orderService.get(100L);
        logger.info("orderVo#code : {} ", orderVo.getCode());
​
        OrderVo orderVo1 = orderService.get(100L);
        logger.info("orderVo#code : {} ", orderVo1.getCode());
    }
​
    @Test
    void createOrder() {
    }
}

输出如下:

​// 输出
// OrderService#get invoke!
// orderVo#code : 100
// orderVo#code : 100

加载全部内容

相关教程
猜你喜欢
用户评论