java开发遇到最大的问题_java开发遇到的问题总结(三)
25、使百分比的數(shù)據(jù)顯示2位小數(shù)
publicstaticString div(doublev1,doublev2){
DecimalFormat df=newDecimalFormat("##0.00%");
returndf.format(Double.valueOf((v1/v2)));
}
26、數(shù)據(jù)緩存問題
1)在Action中聲明private Cache ehCache;
2)放入緩存
publicvoidputEcache(){
try{
booleanb=false;//判斷是否是全部
if(codenames==null||codenames.equals("")){
codenameList=kpiTotalManagerService.findAllCodeName();
b=true;
}
if(fromtime==null||fromtime.trim().equals("")){
fromtime=DateUtil.getBeforMonthFirstDate();//默認是當前月的前一個月的1號
}
if(totime==null||totime.trim().equals("")){
totime=DateUtil.getMonthFirstDate();//默認是當前月的1號
}
String jsoncolumns=this.findColumns(codenames);//grid的列頭
String jsondatas=this.kpiTotalManagerService.findData(codenames,codenameList,fromtime,totime,isfirst);//grid的列頭
String jsonfields=this.kpiTotalManagerService.findFields(b,codenames,codenameList);
String gridJson="{'fields':"+jsonfields+", 'data':"+jsondatas+", 'columns':"+jsoncolumns+",'success':true, 'fromtime':"+fromtime+",'totime':"+totime+"}";
ElementgridJson1 =newElement("gridJson1", gridJson);
ehCache.put(gridJson1);
}catch(Exception e) {
log.debug(e.getMessage());
e.printStackTrace();
}
}
3)a.配置緩存ehcache.xml(一般放在WEB-INF里)
maxElementsInMemory="10000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
memoryStoreEvictionPolicy="LFU"/>
b.配置spring中的緩存
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
/WEB-INF/ehcache.xml
class="org.springframework.cache.ehcache.EhCacheFactoryBean">
defCache
c.在spring配置一套Action/service/Dao時需要在Action中再加入一段代碼,如下
ref的值與步驟b的id值一致
d.在配置job時需要再把Action中有關(guān)放入緩存的方法配置上,如
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
putEcache
f.配置觸發(fā)任務(wù)條件
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
120000
g.配置啟動定時執(zhí)行
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
4)從緩存中取數(shù)據(jù)
publicString querySysList() {
HttpServletResponseresponse=ServletActionContext.getResponse();
response.setContentType("text/json;charset=UTF-8");
try{
booleanb=false;//判斷是否是全部系統(tǒng)的這個條件
booleanbb=false;//判斷開始時間月份是否是傳的空
booleanbbb=false;//判斷結(jié)束時間月份是否是傳的空
PrintWriter writer=response.getWriter();
if(codenames==null||codenames.equals("")){
codenameList=kpiTotalManagerService.findAllCodeName();
b=true;
}
if(fromtime==null||fromtime.trim().equals("")||fromtime.trim().equals(DateUtil.getBeforMonthFirstDate())){
fromtime=DateUtil.getBeforMonthFirstDate();//默認是當前月的前一個月的1號
bb=true;
}
if(totime==null||totime.trim().equals("")||totime.trim().equals(DateUtil.getMonthFirstDate())){
totime=DateUtil.getMonthFirstDate();//默認是當前月的1號
bbb=true;
}
String gridJson ="";
if(b&&bb&&bbb){//當三個都為true時走緩存中的數(shù)據(jù)
Element ele =ehCache.get("gridJson1");
if(null!= ele) {
Object eleObj = ele.getObjectValue();
if(null!= eleObj && eleObjinstanceofString) {
gridJson = (String) eleObj;
}
}
}
if(gridJson!=null&&!gridJson.equals("")){
writer.print(gridJson);
}else{
String jsoncolumns=this.findColumns(codenames);//grid的列頭
String jsondatas=this.kpiTotalManagerService.findDatas(codenames,codenameList,fromtime,totime,isfirst);//grid的列頭
String jsonfields=this.kpiTotalManagerService.findFields(b,codenames,codenameList);
gridJson="{'fields':"+jsonfields+", 'data':"+jsondatas+", 'columns':"+jsoncolumns+",'success':true, 'fromtime':"+fromtime+",'totime':"+totime+"}";
System.out.println(gridJson);
writer.print(gridJson);//放入緩存
}
}catch(Exception e) {
log.debug(e.getMessage());
e.printStackTrace();
}
returnnull;
}
總結(jié)
以上是生活随笔為你收集整理的java开发遇到最大的问题_java开发遇到的问题总结(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 行内元素和块级元素的区别,为何img、i
- 下一篇: 柱形图无数据可选中_Excel – 如何