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”。