java spring关于缓存的使用

读文前提:对springmvc有一定的使用了解,能够写一个从页面输入地址到后台读取数据的功能(不能就跳过本文,百度其他文章)。

写过一些代码,对于缓存常常听说,却不是很了解,所以做个笔记。
缓存,把访问读取的东西放到缓存中,后面访问的时候,直接读取缓存,提高访问效率。
到这里,会提出几个问题
1.缓存在哪里
2.什么东西要放入缓存
3.怎么放入缓存中
4.怎么知道访问了缓存
带着这些问题,我们在项目(新建或者在已有项目中添加)中添加下面的代码。重点在于缓存注解的使用
controller中写一个方法,

@Resource
    private IHpCacheService hpSrv;
    @RequestMapping(value = "/getSomething",produces = {"text/html;charset=UTF-8"})
    @ResponseBody
    public String getSomething(){
        String res = hpSrv.getSomething();
        return res;
    }

调用service方法,service写完方法实现之后为其加缓存注解

@Service("hpCacheService")
public class hpCacheServiceImpl implements IHpCacheService {

    @Override
    //缓存注解
    @Cacheable(value = "default")
    public String getSomething() {
        System.out.println("没有调用缓存,所以你看到了我");
        return "ss";
    }
}

springmvc的配置文件中配置缓存

<!--缓存 start-->
    <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
        <property name="caches">
            <set>
                <bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean">
                    <property name="name" value="default"/>
                </bean>

            </set>
        </property>
    </bean>
    <!-- 支持缓存注解 -->
    <cache:annotation-driven cache-manager="cacheManager" />
    <!--缓存 end-->

运行项目,输入地址http://localhost:8080/*/getSomething 进行访问
第一次会在页面看到返回结果,在控制台看到输出:没有调用缓存,所以你看到了我
刷新一下,再看控制台会发现没有这句话,但是页面还是有相同的返回结果。

分析结果:第一次的页面显示结果说明我们方法调用成功了,控制台打印出的说明访问了这个方法,第二次页面显示我们依旧访问成功,控制台没打印出提示(没有调用缓存,所以你看到了我)是因为使用了缓存注解,在第一次访问之后把它放在了缓存中,第二次访问的是缓存,不是方法,所以页面成功,控制台没有打印提示。

问:
1.缓存在哪里
2.什么东西要放入缓存
3.怎么放入缓存中
4.怎么知道访问了缓存
答:
一二问题看官方关于缓存的具体解释。
问题三:springmvc通过注解自动放入缓存,
问题四:文章中模拟的就是缓存访问的情景。

文章没有什么营养,写下来是为了学习cache的一个过渡,旨在使用通俗易懂的对话来入门学习,有了这样的轮廓,就应该去看这篇文章学习细节。https://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值