本文更新日期:2019年10月5日
1、@CacheNamespace的源码分析@CacheNamespace注解主要用于mybatis二级缓存,等同于属性。默认情况下,MyBatis 3 没有开启二级缓存,要开启二级缓存,需要在SQL 映射文件(mapper.xml)中添加一行:
当然,前提还需要在全局配置文件中开启缓存:
CacheNamespace是注解,其源码如下所示:
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface CacheNamespace {
Class implementation() default PerpetualCache.class;
Class eviction() default LruCache.class;
long flushInterval() default 0;
int size() default 1024;
boolean readWrite() default true;
boolean blocking() default false;
Property[] properties() default {};
}
2、CacheNamespace的使用注意事项
虽然xml配置和注解的功能基本相同,但是使用@CacheNamespace时候要注意:配置文件和接口注释是不能够配合使用的。只能通过全注解的方式或者全部通过xml配置文件的方式使用。见下面的例子:
@CacheNamespace(implementation = MybatisRedisCache.class)
public interface UserMapper(
@Select("select * from t_user where user_id = #{userId}")
@Options(useCache = true)
List getUser(User u);
}
select * from test where id = #{id}
关注微信公众号获取更多VSCode编程信息,定时发布干货文章
全部评论