springboot 使用mybatis二级缓存
时间: 2024-10-20 15:08:33 浏览: 45
SpringBoot+Mybatis项目使用Redis做Mybatis的二级缓存的方法
Spring Boot整合MyBatis后,可以利用MyBatis的二级缓存功能来提高性能。二级缓存通常存储在内存中,用于减少数据库查询次数,特别是在数据读取频繁且数据相对静态的情况下。以下是配置和使用二级缓存的基本步骤:
1. **启用MyBatis二级缓存**: 在`mybatis-spring.xml`或application.properties(YAML)文件中,添加开启缓存的配置。例如:
```xml
<mybatis:scan base-package="com.example.mapper"/>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置二级缓存 -->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
```
或者
```properties
mybatis.config-location=mybatis-config.xml
```
2. **配置mybatis-config.xml** (XML配置) 或 `SqlSessionFactoryBuilderCustomizer` (Java配置) 中设置二级缓存策略,如指定缓存类型(LRU、FIFO、WEAK等)、默认的TTL(超时时间)以及是否允许分布式缓存。
3. **在Mapper接口上声明缓存级别**: 可以在Mapper接口方法上使用`@Cacheable`, `@CacheEvict`或`@Caching`注解来控制哪些方法使用缓存。比如:
```java
@Cacheable("productCache")
List<Product> getProductById(int productId);
```
4. **清理缓存**: 如果需要手动清空缓存,可以在Service层调用`SqlSession`的`clearCache()`方法。
5. **注意点**:
- 缓存仅适用于无副作用的操作,即缓存的数据不会改变其他对象的状态。
- 分布式环境需额外配置,如使用Redis作为分布式缓存解决方案。
阅读全文