文档章节

后台配置banner,前台能及时获取的实现

xuguangwu
 xuguangwu
发布于 2017/02/13 21:40
字数 169
阅读 17
收藏 0

通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作。项目启动的时候使用一个类似自定义缓存的map,用来读取数据库配置,后面每五分钟查询一次数据库,可以做到不重启服务配置banner的效果。

//存储状态正常的banner 
private Map<Integer, BannerDo> enableCacheMap;
@PostConstruct
private void init() {
    enableCacheMap = Maps.newConcurrentMap();
    build();
}
@Override
public MimiResult<List<BannerDo>> getEnableBannerList() {
    MimiResult<List<BannerDo>> result = MimiResult.newResult();
    if (enableCacheMap != null && !enableCacheMap.isEmpty()) {
        result.setObject(Lists.newArrayList(enableCacheMap.values()));
    }
    return result;
}
@Scheduled(cron = "0 0/5 * * * ?")
private void schedule() {
    enableCacheMap.clear();
    build();
}
private void build() {
    BannerQueryOption option = new BannerQueryOption();
    option.setState(EnableState.ENABLE.getState());
    List<BannerDo> bannerDos = bannerMapper.queryBanners(option);
    if (CollectionUtils.isNotEmpty(bannerDos)) {
        for (BannerDo bannerDo : bannerDos) {
            enableCacheMap.put(bannerDo.getId(), bannerDo);
        }
    }
}

© 著作权归作者所有

共有 人打赏支持
xuguangwu
粉丝 3
博文 20
码字总数 13259
作品 0
深圳
程序员
Exrick/3D-Banner

3D-Banner 基于Vue开发的3D轮播图组件 在线Demo:http://xmall.exrick.cn/ 高仿锤子商城官网轮播图,3D视差效果,实现后台可灵活配置,定时自动轮播 原作者 qingjin ; 二次开发 yucccc ; 本作...

Exrick
04/21
0
0
android中左右滑屏的实现(广告位banner组件)

原理 参见下图。整个组件是一个FrameLayout,里面有两个view,第一个是LinearLayout,承载了4个(或多个)可以滑动的view,见图中绿色背景的部分;第二个是一个RelativeLayout,在其底部放置...

长平狐
2013/12/25
84
0
android中左右滑屏的实现(广告位banner组件)

原理 参见下图。整个组件是一个FrameLayout,里面有两个view,第一个是LinearLayout,承载了4个(或多个)可以滑动的view,见图中绿色背景的部分;第二个是一个RelativeLayout,在其底部放置...

长平狐
2013/12/25
5.6K
0
ThinkPHP运行流程和项目配置

1.现有的ThinkkPHP3.1.3框架针对视频中讲解的Runtime文件不再指定文件的缺陷已经修复; 2.ThinkPHP的运行流程:(理解其运行流程的关键点就是ThinkPHP路由和单入口的文件运行模式) ThinkPHP...

笨小熊
2014/07/24
0
0
react-native 使用leanclound消息推送

iOS消息推送的基本流程 1.注册:为应用程序申请消息推送服务。此时你的设备会向APNs服务器发送注册请求。2. APNs服务器接受请求,并将deviceToken返给你设备上的应用程序 3.客户端应用程序将...

ding_ios
08/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

谷歌 Fuchsia 上手体验,将取代Android/win10

在手机市场领域,Google表现很抢眼,毫无疑问,Android 至今在移动操作系统的市场份额占据绝对领先地位,但是 Android 仍然存在不少问题,碎片化问题严重,在平板以及大屏幕设备上表现糟糕,...

linux-tao
24分钟前
1
0
List、Array与ArrayList

数组在内存中是连续存储的,所以它的索引速度很快,而且赋值和修改元素也非常快,比如: string[] s=new string[3];//赋值 s[0]="a"; s[1]="b"; s[2]="c";//修改 s[1]="b1"; 但是数组...

shimmerkaiye
26分钟前
0
0
Linux 的Lnmp环境下为mysql添加环境变量

一.问题 在Linux 安装完Lnmp 环境后 , 连接Mysql 告诉没有这条命令 mysql -uroot -p 命令失效 因为是源码安装的,所以会出现这样的的原因 。集成环境是不会出现的。 其实很简单,只需要给m...

15834278076
28分钟前
3
0
apolloxlua include函数

include函数不是单独使用的函数, 他并不是标准库的一部分, 你可以使用include函数将某个后缀为 .aop的文档包含到你的文档流中。 因为include是单独处理流, 所以不会在主处理流程中有所表示...

钟元OSS
32分钟前
0
0
【转载分享】做一名较真的工程师

近些年与我共事过的同事,一定知道我至今仍有一个较真的性格。我会:指出同事所写代码的不当命名问题(并帮助改进);指出同事所写文档中的逻辑混乱问题(并辅以修订);指出同事所写PPT中乱...

HellerZhang
33分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部