文档章节

砖头人:app中banner图片信息

caoyongjun
 caoyongjun
发布于 2016/12/12 23:21
字数 433
阅读 4
收藏 0
点赞 0
评论 0

tomcat启动时一次性获取所有数据库中banner信息初始化到map中,因为常年不变所以每次前端请求时直接从静态map中直接返回对应的banner信息,当真的有banner信息修改时,通过admin方式调用更新map中的相应banner信息即可。主要还是避免每次都去连接宝贵的数据库资源。

1.application-service.xml   加载到这个文件时会触发init-method=”init“方法

<bean id="commonDAO" class="com.brickman.dao.impl.CommonDAOImpl"/>
<bean id ="contextUtil" class="com.brickman.utils.ContextUtil" init-method="init">
	<property name="commonDAO" ref="commonDAO"/>
	<property name="advertisementDAO" ref="advertisementDAO"/>
</bean>

2.初始化 连接数据库信息并存储到一个map中

#所有的banner信息放入这个map
    private static Map<String, List<BrickAdvertisement>> brickAdvertisementMapList = new HashMap<String, List<BrickAdvertisement>>();
...省略
#init的方法内容
 List<BrickAdvertisement> brickAdvertisementList01 = new ArrayList<BrickAdvertisement>();//启动页广告
 List<BrickAdvertisement> brickAdvertisementList02 = new ArrayList<BrickAdvertisement>();//首页广告
 List<BrickAdvertisement> brickAdvertisementList03 = new ArrayList<BrickAdvertisement>();//中间相机页广告
 List<BrickAdvertisement> brickAdvertisementList04 = new ArrayList<BrickAdvertisement>();//中间公益页广告
		
 List<BrickAdvertisement> list = advertisementDAO.listAdvertisementByType(null);
		
 if (list != null && list.size() > 0) {
  for (int i = 0; i < list.size(); i++) {
    BrickAdvertisement advertisement = list.get(i);
	 //设置他们对应的为止
	switch (advertisement.getAdvertisementType()) {
		case 1:
		  brickAdvertisementList01.add(advertisement);
		  break;
		case 2:
		  brickAdvertisementList02.add(advertisement);
		  break;
		case 3:
		  brickAdvertisementList03.add(advertisement);
		  break;
		case 4:
		  brickAdvertisementList04.add(advertisement);
		  break;
		default:
		  break;
	}
 }
}

		brickAdvertisementMapList.put("1", brickAdvertisementList01);
		brickAdvertisementMapList.put("2", brickAdvertisementList02);
		brickAdvertisementMapList.put("3", brickAdvertisementList03);
		brickAdvertisementMapList.put("4", brickAdvertisementList04);

3.前端获取某个banner类型图片

List<BrickAdvertisement> list=ContextUtil.getBrickAdvertisementMapList().get(advertisementType);

4.后台admin修改了banner信息,触发更新信息

List<BrickAdvertisement> list = advertisementBO.listAdvertisementByType(paramMap);
if(list !=null && list.size()>0){
	ContextUtil.getInstance().getBrickAdvertisementMapList().put(advertisementType, list);//重新设置
}

 

如果此时此刻,你也在北漂、上漂、广漂、深漂,那这里就是你的新家:www.brickman.cn。
欢迎加入砖头人大家庭,现邀请你体验为你定制开发的“砖头人app”。

© 著作权归作者所有

共有 人打赏支持
caoyongjun
粉丝 3
博文 9
码字总数 3875
作品 0
朝阳
程序员
MoPub广告联盟

广告类型: 1 banner:横幅广告(使用了Mopub广告平台) 2 Interstitial:全屏广告(使用了Mopub广告平台) 3 Chartboost:游戏间相互推广的广告(使用了chartboost广告平台) 4 reward:看长...

yizhangxyz ⋅ 2016/02/03 ⋅ 0

android中左右滑屏的实现(广告位banner组件)

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

长平狐 ⋅ 2013/12/25 ⋅ 0

将一个网站撸成App很简单

漂亮的皮囊千篇一律, 有趣的灵魂就是老夫啦。 这位看文章的小哥,还在无聊的套接口解析数据吗? 来来来,鸡排君带你玩一把将一个网站撸成App。 本篇是一个实战文章讲解, 在无接口的情况下,...

香脆的大鸡排 ⋅ 2017/08/07 ⋅ 0

android中左右滑屏的实现(广告位banner组件)

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

长平狐 ⋅ 2013/12/25 ⋅ 0

视觉设计是为了更好的表达信息

在日常工作中,我们经常会遇到一些设计的很”漂亮”的图片不被用户认可,点击率很低,这时候我们会暗地里抱怨,可却没明白问题究竟出在哪? 网页设计与平面设计究竟有啥区别,我们主观的为页...

junwong ⋅ 2012/02/29 ⋅ 1

Gulp 前端sass 编译浏览器重载

Gulp 前端sass 实时编译重载 参考https://github.com/sindresorhus/gulp-ruby-sass Compiles Sass with the Sass gem and pipes the results into a gulp stream.To compile Sass with libs......

byAge ⋅ 2016/02/01 ⋅ 0

jsonmess/ADBannerAutoScroll

ADBannerAutoScroll 用于展示Banner广告,实现自动轮播,无限循环滚动功能. 2016.4.13: 增加外部手动动态刷新Banner信息,修改显示异常的bug 2016.2.29: 增加组件,点击事件回调(回调Block...

jsonmess ⋅ 2016/02/19 ⋅ 0

C#开发微信门户及应用(47) - 整合Web API、微信后台管理及前端微信小程序的应用方案

在微信开发中,我一直强调需要建立一个比较统一的Web API接口体系,以便实现数据的集中化,这样我们在常规的Web业务系统,Winform业务系统、微信应用、微信小程序、APP等方面,都可以直接调用...

walb呀 ⋅ 2017/12/04 ⋅ 0

spring boot框架学习3-spring boot核心(2)

本节主要: 1:怎么手动关闭不需要的配置? 2:修改自定义启动的banner 3:全局配置文件 本文是《凯哥陪你学系列-框架学习之spring boot框架学习》中第三篇 spring boot框架学习3-spring bo...

799879287 ⋅ 2017/10/27 ⋅ 0

知乎专栏应用客户端源码项目

第三方的app,引用作者的描述:“最近一直在利用空余时间开发一个完整的App,名字就叫“专栏”。开发这个App的目的主要是为了练练手,熟悉开发一个完整App的流程。就像造房子,亲手打地基,搬...

tianlongbamu ⋅ 2015/04/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。 说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的...

老道士 ⋅ 13分钟前 ⋅ 0

HDFS原理学习

一、概述 1、 Hadoop整合了众多的文件系统,首先提供了一个高层的文件系统抽象org.apache.hadoop.fs.FileSystem。然后有各个文件系统的实现类。 2、Hadoop是JAVA编写的,不同文件系统之间的交...

cjxcloud ⋅ 17分钟前 ⋅ 0

Linux下MySQL表名不区分大小写的设置方法(抄袭别人的)

Linux下MySQL表名不区分大小写的设置方法 MySQL表名不区分大小写的设置方法 在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大...

随风而浮沉 ⋅ 22分钟前 ⋅ 0

ubuntu下安装宋体simsun

sudo cp simsun.ttc /usr/share/fonts cd /usr/share/fonts sudo chmod 644 simsun.ttc 更新字体缓存: 代码: sudo mkfontscale 代码: sudo mkfontdir 代码: sudo fc-cache -fsv 安装chrome扩......

wangxuwei ⋅ 23分钟前 ⋅ 0

利用 ssh 传输文件

Linux 下一般可以用 scp 命令通过 ssh 传送文件: #把服务器上的 /home/user/a.txt 发送到本机的 /var/www/local_dir 目录下scp username@servername:/home/user/a.txt /var/www/local_dir...

大灰狼时间 ⋅ 34分钟前 ⋅ 0

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤...

智能合约 ⋅ 56分钟前 ⋅ 0

web3j开发java或android以太坊智能合约快速入门

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁 ⋅ 58分钟前 ⋅ 0

一起读书《深入浅出nodejs》-异步I/O

异步I/O “异步”这个名词其实很早就诞生了,但它大规模流行却是在Web 2.0浪潮中,它伴随着AJAX的第一个A(Asynchronous)席卷了Web。 为什么要异步I/O 关于异步I/O为何在Node里如此重要,这与...

小草先森 ⋅ 今天 ⋅ 0

JVM各种问题

1、如果启动什么都不设,会怎样? 先来看一个命令 [root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCo......

算法之名 ⋅ 今天 ⋅ 0

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部