new 之前加一步,把對(duì)象a里的方法掛B的原型上。
Object.keys(a).forEach(function(v) {
B.prototype[v] = a[v]
})
var b = new B()
你也可以new之后,把對(duì)象a里的方法直接復(fù)制到b里(當(dāng)然這樣可能會(huì)覆蓋構(gòu)造函數(shù)里的方法
var b = new B()
Object.keys(a).forEach(function(v) {
b[v] = a[v]
})getOne 是 lazy load 的
你加上這個(gè) spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
1、根據(jù)你的截圖,流量高峰也就400多KB,所以1M帶寬就夠你用了,1M等于1024KB
2、經(jīng)??催@個(gè)趨勢(shì)圖,根據(jù)具體情況去調(diào)整帶寬
我們現(xiàn)在這個(gè)項(xiàng)目用工作流,是單獨(dú)把工作流做為一個(gè)模塊,涉及業(yè)務(wù)狀態(tài)相關(guān)的代碼全放在里面。包括申請(qǐng)、審核通過(guò)拒絕等等。這樣無(wú)論是什么類(lèi)型的申請(qǐng)(如需求申請(qǐng),代碼合并申請(qǐng)等)都可以直接用這個(gè)工作流。并在工作流進(jìn)行狀態(tài)對(duì)應(yīng)的相應(yīng)處理。這樣就不用在其他的業(yè)務(wù)代碼里重新進(jìn)行狀態(tài)更改的判斷了。感覺(jué)還是很方便的。
不過(guò)你說(shuō)的如果只有通過(guò),并且沒(méi)有審批的過(guò)程,這樣我個(gè)人覺(jué)得確實(shí)不用工作流....但是也要在狀態(tài)更改后進(jìn)行判斷,所以我覺(jué)得放在工作流里也是可以的- -
你這不是遞歸了嗎。
遞歸的話(huà)沒(méi)有邊界,跑一會(huì)內(nèi)存會(huì)蹦。
在change 函數(shù)外面用定時(shí)器調(diào)用
加個(gè) -f 試試
自己寫(xiě)一個(gè)函數(shù)行不?如果你你是用Java 8:
Function<BigDecimal, String> format = x -> BigDecimal.ZERO.equals(x) ?"-0.00" : String.format("%.2f", x);
System.out.println(format.apply(new BigDecimal(0)));
System.out.println(format.apply(new BigDecimal(1)));
System.out.println(format.apply(new BigDecimal(-1)));1.如何抓取多個(gè)網(wǎng)站的文章?
答:不同的網(wǎng)站,意味著html結(jié)構(gòu)、分頁(yè)格式都會(huì)不一樣,只能針對(duì)不同的網(wǎng)頁(yè),寫(xiě)不同的解析程序。
2.如何整理爬蟲(chóng)信息?
答:你肯定是知道要抓取什么內(nèi)容的不是嗎?如標(biāo)題,內(nèi)容,作者等等,無(wú)非就是key-value,將值存在數(shù)據(jù)庫(kù)對(duì)應(yīng)的字段即可。
程序運(yùn)行環(huán)境有個(gè)叫 當(dāng)前運(yùn)行目錄的 東東.
你單獨(dú)運(yùn)行 是在 /xx/x.html 下運(yùn)行的. 當(dāng)前運(yùn)行目錄是 /xx/
你整體運(yùn)行是在 /xx/這個(gè)目錄下運(yùn)行的. 當(dāng)前運(yùn)行目錄是 /
你的 CSS目錄應(yīng)該是與 /XX 是同級(jí)別目錄
|-css
|-style.css
|-xx
|-x.html
//因?yàn)槭敲ご蜻^(guò)來(lái)的,我驗(yàn)證的數(shù)據(jù)并不是這個(gè),但是為了符合題目還是寫(xiě)了這個(gè),所以參數(shù)有可能在表格中位置會(huì)
//有點(diǎn)不對(duì),但是實(shí)驗(yàn)一下還是可以很容易看出來(lái)的。
String[] p = {"p1","p2"};
String[] price = {"10","20"};
int rindex = 0;
Name name;
HSSFWorkbook workbook = new HSSFWorkbook();//excel文件對(duì)象
HSSFSheet sheet = workbook.createSheet("Info");//工作表對(duì)象
HSSFSheet hidesheet = workbook.createSheet("hideSheet");//隱藏一些信息
HSSFRow row = hidesheet.createRow(rindex++);
//設(shè)置物品編號(hào)
for(int i=0;i<p.size();i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(p[i]);
}
// 名稱(chēng)管理
name = workbook.createName();
name.setNameName("物品編號(hào)");
name.setRefersToFormula("hidesheet!$A$"+rindex+":$"+judgePos(p.size())+"$"+rindex);
for(int i=0;i<p.size();i++){
HSSFRow row = hidesheet.createRow(rindex++);
HSSFCell cell = row.createCell(0);
cell.setCellValue(p[i]);
cell = row.createCell(1);
cell.setCellValue(price[i]);
}
String[] title = {"物品編號(hào)","物品價(jià)格"};
setTitle(sheet ,title,0);
HSSFRow allocationRow = sheet.createRow(rindex++);
**allocationRow.createCell(4).setCellFormula("LOOKUP(A2,hideSheet!A2:A3,hideSheet!B2:B3)");**
// 得到驗(yàn)證對(duì)象
DataValidation validation = getDataValidationByFormula("物品編號(hào)",2,1);
// 工作表添加驗(yàn)證數(shù)據(jù)
sheet.addValidationData(validation);
// 生成輸入文件
File file = new File(filePath);
FileOutputStream out = new FileOutputStream(file);
workbook.write(out);
out.close();
//以上大概就是個(gè)全過(guò)程,主要是設(shè)置LOOKUP函數(shù),我原先一直沒(méi)搞出來(lái)是因?yàn)楹瘮?shù)參數(shù)寫(xiě)錯(cuò)了,搞半天沒(méi)搞出來(lái),今天搞出來(lái)了。
//用到的函數(shù)我也貼一下,有些用別人的,有些自己寫(xiě)的。
/**
* 返回所在列的字符
* @param size
* @return
*/
public String judgePos(int size) {
String[] args= {"A","B","C","D","E","F","G","H","I","J","K","L","M","N",
"O","P","Q","R","S","T","U","V","W","X","Y","Z"};
boolean tag=true;
StringBuffer reversepos=new StringBuffer();
while(tag) {
int pos=size%26;
if(pos==0) {
pos=25;
size--;
}else {
pos-=1;
}
int result = size/26;
if(result==0) {
reversepos.append(args[pos]);
tag=false;
}else {
reversepos.append(args[pos]);
size/=26;
}
}
return reversepos.reverse().toString();
}
/**
* 創(chuàng)建表頭
* @param sheet
* @param title
*/
public void setTitle(HSSFSheet sheet,String[] title,int index) {
HSSFRow row = sheet.createRow(index);
for(int i=0;i<title.length;i++) {
HSSFCell userNameLableCell = row.createCell(i);
userNameLableCell.setCellValue(title[i]);
}
}
/**
* 使用已定義的數(shù)據(jù)源方式設(shè)置一個(gè)數(shù)據(jù)驗(yàn)證
*
* @param formulaString
* @param startRow
* @param startCol
* @return
*/
public static DataValidation getDataValidationByFormula(String formulaString,int startRow,int startCol) {
// 加載下拉列表內(nèi)容
DVConstraint constraint = DVConstraint.createFormulaListConstraint(formulaString);
// 設(shè)置數(shù)據(jù)有效性加載在哪個(gè)單元格上。
// 四個(gè)參數(shù)分別是:起始行、終止行、起始列、終止列
int firstRow = startRow-1;
int lastRow = startRow-1;
int firstCol = startCol - 1;
int lastCol = startCol - 1;
CellRangeAddressList regions = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
// 數(shù)據(jù)有效性對(duì)象
DataValidation validation = new HSSFDataValidation(regions, constraint);
return validation;
}
}
window.open可以給第二個(gè)參數(shù)是目標(biāo)頁(yè)面的name
在新頁(yè)面可以通過(guò)window.name獲取到傳過(guò)來(lái)的name
然后再每個(gè)新頁(yè)面都加上 document.title = window.name
為什么不用weex的官方腳手架呢?首先你的項(xiàng)目是空的,沒(méi)有遷移的問(wèn)題;其次,如果你的項(xiàng)目是已完成的,那也要重寫(xiě)啊,因?yàn)閣eex跟web開(kāi)發(fā)不一樣的,樣式的寫(xiě)法,tag標(biāo)簽都不同。
好吧,我改好了。
是公司內(nèi)部上傳文件的代碼有點(diǎn)問(wèn)題。
最老的那位前輩解決了。
他說(shuō)word 2007以上版本的多次寫(xiě)字節(jié)到輸出流出現(xiàn)報(bào)錯(cuò),所以他改成了下面這樣:
// 一次寫(xiě)入多個(gè)字節(jié)到輸出流中,減少I(mǎi)O訪(fǎng)問(wèn)次數(shù)
while((numBytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, numBytesRead);
}對(duì)于字體,各家瀏覽器渲染方式不一樣,高度不一致很正常
應(yīng)該是DOM的重排和重繪次數(shù)過(guò)多,影響了DOM性能,建議直接在js中生成html,然后插入到dom中:
let starList = [3, 2, 5];
function loadStars() {
let dom = '';
starList.forEach(e => {
dom += '<ul>/
<input value="' + e + '" type="hidden"/>'
for (let i = 0; i < 5; i++) {
dom += i < e ? '<li class="on"></li>' : '<li></li>';
}
dom += '</ul>';
});
document.getElementById("list").innerHTML = dom;
}如果是系統(tǒng)安裝,可以直接用服務(wù)管理腳本進(jìn)行管理,
如ubuntu下/etc/init.d/tomcat8
使用命令
$ sudo service tomcat8 restart
腳本內(nèi)容如下:
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
set +e
if [ -f "$CATALINA_PID" ]; then
start-stop-daemon --stop --pidfile "$CATALINA_PID" \
--user "$TOMCAT8_USER" \
--retry=TERM/20/KILL/5 >/dev/null
if [ $? -eq 1 ]; then
log_progress_msg "$DESC is not running but pid file exists, cleaning up"
elif [ $? -eq 3 ]; then
PID="`cat $CATALINA_PID`"
log_failure_msg "Failed to stop $NAME (pid $PID)"
exit 1
fi
rm -f "$CATALINA_PID"
rm -rf "$JVM_TMP"
else
log_progress_msg "(not running)"
fi
log_end_msg 0
set -e
;;
基本的思路是先用start-stop-daemon發(fā)停止信號(hào)給tomcat進(jìn)程, 如果進(jìn)程不能順利結(jié)束,再用kill殺掉. 這里TERM/20/KILL/5意思是先發(fā)送TERM信號(hào)20秒沒(méi)有結(jié)束接著發(fā)送KILL信號(hào),超時(shí)時(shí)間為5秒.
如果你自己管理,也可以參考上面腳本來(lái)完成.
a標(biāo)簽沒(méi)有href,angular里會(huì)event.preventDefault(), 換一個(gè)標(biāo)簽試試
——-
上面回答的不對(duì),不是這個(gè)引起的
有可能是你重啟數(shù)據(jù)庫(kù)之后沒(méi)有進(jìn)行過(guò)任何CUD相關(guān)的操作,往相關(guān)的數(shù)據(jù)表插入幾條數(shù)據(jù)試試...
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。