文档章节

砖头人:app中banner图片信息

caoyongjun
 caoyongjun
发布于 2016/12/12 23:21
字数 433
阅读 4
收藏 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
朝阳
程序员
Android中广告轮播框架Banner----(功能很全面

转载地址:https://github.com/youth5201314/banner 参考视频:http://ke.atguigu.com/course/150 Android图片轮播控件 新框架发布,欢迎大家Star XFrame - Android快速开发框架 XFrame详细功...

丁佳辉
08/02
0
0
打不破的壁垒,我们区块链能!搞不定的市场,我们这里能!

区块链是随着比特币的暴涨而被人们所熟知,数不清的韭菜蜂蛹而至,有人获利了洋洋自得随便骂人家是韭菜,也有人深深的在这市场里埋在了群尸之下永远不得翻身。 作为一个在区块链在币圈混迹了...

桃子未见
08/04
0
0
MoPub广告联盟

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

yizhangxyz
2016/02/03
18
0
将一个网站撸成App很简单

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

香脆的大鸡排
2017/08/07
0
0
android中左右滑屏的实现(广告位banner组件)

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

长平狐
2013/12/25
5.6K
0

没有更多内容

加载失败,请刷新页面

加载更多

django rest framework 外键序列化方法与问题总结

django rest framework 外键序列化方法与问题总结 当借口中需要出现一对多关系的时候,我们可以用rest_framwork的序列化功能来处理,代码如下. # models.pyfrom django.db import modelscl...

_Change_
昨天
1
0
SingleNumber136 leetCode

Given a non-empty array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you im......

woshixin
昨天
1
0
String ,  StringBuffer ,  StringBuilder的区别

String , StringBuffer , StringBuilder的区别 String 首先,String 是用来表示一个字符串常量的,它是一个不可变对象,意味着,一旦我们创建了某个字符串之后,就不能再改变它的值了,我们可...

tsmyk0715
昨天
3
0
区块链100讲:UTXO 和 Account 模型对比

在当前区块链世界中,主要有两种记录保存方式,UTXO 模式(Unspent Transaction Output) 和 Account 模式。Bitcoin 采用的是 UTXO 模型,Ethereum 采用的 Account 模型,同样 CITA 也采用了 ...

HiBlock
昨天
1
0
Vue中路由管理器Vue Router使用介绍(三)

一、路由定义添加动态参数定义 1.路由定义项,使用:xx 方式 定义动态参数 { path:'/user/:id/:name', name:'user', component:()=>import('./views/User.vue') ...

tianma3798
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部