java计数器功能实现_Java的Spring内实现的mini版内存"计数器"功能

publicLong getCreationCounter() {

String attributeNameCreationCounter= "CreationCounter";

Long attributeValueCreationCounter= 0L;boolean containsCreationCounter = false;

String attributeNameExpirationDateTime= "ExpirationDateTime";

Long attributeValueExpirationDateTime= 0L;boolean containsExpirationDateTime = false;

Enumeration attributeNames =ContextUtil.servletContext.getAttributeNames();while(attributeNames.hasMoreElements())

{

String name=attributeNames.nextElement();if(!containsCreationCounter &&name.equals(attributeNameCreationCounter)){

containsCreationCounter= true;

}if(!containsExpirationDateTime &&name.equals(attributeNameExpirationDateTime)){

containsExpirationDateTime= true;

}if(containsCreationCounter &&containsExpirationDateTime){break;

}

}boolean isExpired = false;if(containsExpirationDateTime){//包含超期时间

Object attributeValueExpirationDateTimeObj =ContextUtil.servletContext.getAttribute(attributeNameExpirationDateTime);if(attributeValueExpirationDateTimeObj == null || attributeValueExpirationDateTimeObj.equals("")){//超期时间为空

isExpired = true;

}else{//超期时间非空

attributeValueExpirationDateTime =(Long)ContextUtil.servletContext.getAttribute(attributeNameExpirationDateTime);

Long nowDateTime= (newDate()).getTime();if(nowDateTime < attributeValueExpirationDateTime ){//当前时间小于超期时间,未超期

isExpired = false;

}else{//已超期

isExpired = true;

}

}

}else{//不含超期时间

isExpired = true;

}if (isExpired) {//已超期

attributeValueCreationCounter =getCreationCounter(attributeNameCreationCounter);

getExpirationDateTimeNew(attributeNameExpirationDateTime);

}else {//未超期

if(containsCreationCounter){//包含计数器

Object attributeValueCreationCounterObj =ContextUtil.servletContext.getAttribute(attributeNameCreationCounter);if(attributeValueCreationCounterObj == null || attributeValueCreationCounterObj.equals("")){//计数器为空

attributeValueCreationCounter =getCreationCounter(attributeNameCreationCounter);

}else{//计数器非空

attributeValueCreationCounter =(Long)ContextUtil.servletContext.getAttribute(attributeNameCreationCounter);

}

}else {//不含计数器

attributeValueCreationCounter =getCreationCounter(attributeNameCreationCounter);

}

}returnattributeValueCreationCounter;

}//生成新的超期时间,并存入上下文。

private voidgetExpirationDateTimeNew(String attributeNameExpirationDateTime) {

Long attributeValueExpirationDateTime= 0L;

Date date= newDate();

Calendar calendar=Calendar.getInstance();

calendar.setTime(date);

calendar.add(Calendar.DAY_OF_MONTH,1);//增加1天

attributeValueExpirationDateTime=calendar.getTime().getTime();

ContextUtil.servletContext.setAttribute(attributeNameExpirationDateTime, attributeValueExpirationDateTime);

}//从数据库查询存证量计数器,并存入上下文。

privateLong getCreationCounter(String attributeNameCreationCounter) {

Long attributeValueCreationCounter;

attributeValueCreationCounter= 0L;//从数据库读取数据到存证量计数器

Long creationCounter =((CreationMapper)storageMapper).getCreationCounter();

attributeValueCreationCounter= attributeValueCreationCounter +creationCounter;

ContextUtil.servletContext.setAttribute(attributeNameCreationCounter, attributeValueCreationCounter);returnattributeValueCreationCounter;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值