嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2016-03-31 1243 次浏览 标签 : Java

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

一段公告,更新不会频繁,所以我加了一个定时器,以免每次请求都去数据库请求,直接存放在本地缓存了。最开始我放在构造函数里,好像那时Dao对象还没实例化,使得初始化失败。最后修改成这样,测试通过。

package me.topit.awesome.t16.service;

import me.topit.awesome.t16.dao.AdminConfigDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Timer;
import java.util.TimerTask;

@Service
public class AdminConfigService {

    @Autowired
    AdminConfigDao adminConfigDao;

    private Timer timer;

    private static String announcement;

    private String getValue(String key) {
        return adminConfigDao.get(key);
    }

    public String getAnnouncement() {
        init();
        if (announcement == null){
            announcement = getValue("announcement");
        }
        return announcement;
    }

    private void init(){
        if (timer == null){
            timer = new Timer();
            timer.schedule(announcementTimerTask, 0, 1000*7200);//公告2小时更新一次
        }
    }

    TimerTask announcementTimerTask = new TimerTask() {
        @Override
        public void run() {
            if (adminConfigDao != null) {
                announcement = getValue("announcement");
            }
        }
    };
}


嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表