給上傳圖片添加fileName。
所有的.* 換成 [.\S\s]* 匹配完 str.strip()
r'<td>([.\S\s]*)</td>'xml的insert語(yǔ)句去掉前面的DictionaryType即可
在JDK 6 Update 24之后,HandlePromotionFailure參數(shù)不會(huì)再影響到虛擬機(jī)的空間分配擔(dān)保策略,觀察OpenJDK中的源碼變化(見(jiàn)代碼清單),雖然源碼中還定義了HandlePromotionFailure參數(shù),但是在代碼中已經(jīng)不會(huì)再使用它。JDK 6 Update 24之后的規(guī)則變?yōu)橹灰夏甏倪B續(xù)空間大于新生代對(duì)象總大小或者歷次晉升的平均大小就會(huì)進(jìn)行Minor GC,否則將進(jìn)行Full GC。
代碼清單 HotSpot中空間分配檢查的代碼片段
bool TenuredGeneration::promotion_attempt_is_safe(size_t
max_promotion_in_bytes) const {
// 老年代最大可用的連續(xù)空間
size_t available = max_contiguous_available();
// 每次晉升到老年代的平均大小
size_t av_promo = (size_t)gc_stats()->avg_promoted()->padded_average();
// 老年代可用空間是否大于平均晉升大小,或者老年代可用空間是否大于當(dāng)此GC時(shí)新生代所有對(duì)象容量
bool res = (available >= av_promo) || (available >=
max_promotion_in_bytes);
return res;
}
源自:
https://book.2cto.com/201306/...
EDITED:
Jdk8的最新在線(xiàn)源碼庫(kù)在這里
http://hg.openjdk.java.net/jd...
比較一下Jdk6早期的源代碼
http://hg.openjdk.java.net/jd...
bool TenuredGeneration::promotion_attempt_is_safe(
size_t max_promotion_in_bytes,
bool younger_handles_promotion_failure) const {
bool result = max_contiguous_available() >= max_promotion_in_bytes;
if (younger_handles_promotion_failure && !result) {
result = max_contiguous_available() >=
(size_t) gc_stats()->avg_promoted()->padded_average();
if (PrintGC && Verbose && result) {
gclog_or_tty->print_cr("TenuredGeneration::promotion_attempt_is_safe"
" contiguous_available: " SIZE_FORMAT
" avg_promoted: " SIZE_FORMAT,
max_contiguous_available(),
gc_stats()->avg_promoted()->padded_average());
}
} else {
if (PrintGC && Verbose) {
gclog_or_tty->print_cr("TenuredGeneration::promotion_attempt_is_safe"
" contiguous_available: " SIZE_FORMAT
" promotion_in_bytes: " SIZE_FORMAT,
max_contiguous_available(), max_promotion_in_bytes);
}
}
return result;
}
(這個(gè)與實(shí)現(xiàn)密切相關(guān), 版本之間變化很多, 建議有這時(shí)間學(xué)點(diǎn)別的)
依賴(lài)本來(lái)就是要按需使用,
如果你的A對(duì)象又要依賴(lài)一個(gè)跟D、E、F、G同級(jí)的I對(duì)象,I對(duì)象要不要放進(jìn)H里?
或者又有一個(gè)新的J對(duì)象只依賴(lài)D、E兩個(gè)對(duì)象,難道還要新寫(xiě)一個(gè)只包含D、E的對(duì)象K?
當(dāng)然如果有捆綁再一起使用的一組對(duì)象,還是可以放在一起的
mapper.JinBoot應(yīng)該是一個(gè)接口,里面聲明一個(gè)test方法,mapper.JinBoot貼出來(lái)看看
報(bào)錯(cuò)源碼
public V get(Object key) {
/* 670 */ V value = super.get(key);
/* 671 */ if (value == null) {
/* 672 */ throw new IllegalArgumentException(this.name + " does not contain value for " + key);
/* */ }
/* 674 */ if ((value instanceof Ambiguity)) {
/* 675 */ throw new IllegalArgumentException(((Ambiguity)value).getSubject() + " is ambiguous in " + this.name + " (try using the full name including the namespace, or rename one of the entries)");
/* */ }
/* */
/* 678 */ return value;
/* */ }
protected final Map<String, MappedStatement> mappedStatements = new StrictMap("Mapped Statements collection");
Mybatis會(huì)解析xml文件,使用StrictMap把namespace+id作為key,MappedStatement作為value存儲(chǔ)起來(lái),執(zhí)行selectList方法時(shí)會(huì)根據(jù)sqlId查找對(duì)應(yīng)的MappedStatement,如果value為null,則報(bào)出這個(gè)異常 Mapped Statements collection does not contain value for mapper.JinBoot.test。
一切問(wèn)題都是人的問(wèn)題,前后端的負(fù)責(zé)人并沒(méi)有把項(xiàng)目交付和提高開(kāi)發(fā)當(dāng)做自己的目標(biāo),而是我的活干完就行,不想背鍋。先把前后端負(fù)責(zé)人思想擺正了,好的流程自然就會(huì)協(xié)商出來(lái)。前后端分離,不是前后端分家
是服務(wù)器端還是客戶(hù)端的問(wèn)題?
服務(wù)器端由于客戶(hù)端不活動(dòng)而主動(dòng)斷開(kāi)鏈接的話(huà), 客戶(hù)端可以每隔一定的時(shí)間發(fā)送心跳包來(lái)解決.
客戶(hù)端網(wǎng)絡(luò)不穩(wěn)定的話(huà), 需要在客戶(hù)端寫(xiě)重連機(jī)制.
多種可能,八,十六,三十二進(jìn)制等等,如下圖:
圖片描述
仔細(xì)看了下服務(wù)器后臺(tái),tomcat正常啟動(dòng)了但是沒(méi)有加載我的項(xiàng)目,其他項(xiàng)目沒(méi)有問(wèn)題,我就草了
大哥,你都拿到token了,再把token按照你們系統(tǒng)的轉(zhuǎn)化規(guī)則轉(zhuǎn)化為user對(duì)象返回即可。
第一種:
@PostMapping("add")
@ResponseBody
public Comment commentAdd(@RequestBody CommentAddVO VO, HttpServletRequest request) {
String headerToken = request.getHeader("token");
User user = .....;//把token轉(zhuǎn)化為為user對(duì)象
Comment comment = comRep.save(VO.toComment(user));
//獲取所有說(shuō)說(shuō)
return comment;
}
如果你嫌這種麻煩,你可以寫(xiě)基礎(chǔ)的controller,比如類(lèi)名是BaseController。你的controller繼承這個(gè)BaseController,把獲取user邏輯寫(xiě)個(gè)方法放在BaseController中,用到user的時(shí)候調(diào)用一下就可以了。
第二種:用你的UserUtil
public class UserUtil {
public static User getUser() {
//獲取到當(dāng)前線(xiàn)程綁定的請(qǐng)求對(duì)象
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
String headerToken = request.getHeader("token");
User user = .....;//把token轉(zhuǎn)化為為user對(duì)象
return user;
}
}
@PostMapping("add")
@ResponseBody
public Comment commentAdd(@RequestBody CommentAddVO VO) {
String headerToken = request.getHeader("token");
User user = UserUtil.getUser();
Comment comment = comRep.save(VO.toComment(user));
//獲取所有說(shuō)說(shuō)
return comment;
}
第三種:如果一定要按照你的方式,傳入user對(duì)象。
就按照上面老兄說(shuō)的,自己寫(xiě)個(gè)過(guò)濾器或者攔截器獲取下token,然后轉(zhuǎn)化為user對(duì)象,然后放到request中去。
空格沒(méi)法刪除的原因是刪除了空格,但是因?yàn)樘鎿Q函數(shù)又加回去了,我覺(jué)得可以設(shè)置一個(gè)值用來(lái)保存修改之前的變量,在替換函數(shù)之前先判斷當(dāng)前value的值的長(zhǎng)度是比之前長(zhǎng)還是短,如果是比之前短,那就說(shuō)明進(jìn)行了刪除操作,就不需要在執(zhí)行替換函數(shù)了
用threading.Lock鎖實(shí)現(xiàn)線(xiàn)程同步。
另外遍歷一個(gè)數(shù)組請(qǐng)用for item of arr:遍歷,不要用for i in range(len(arr)):
java.lang.IllegalArgumentException: error at ::0 multiple bindings0, BindingTypePattern(javax.servlet.http.HttpServletRequest, 0)
看你報(bào)錯(cuò)的信息是不能參數(shù)有問(wèn)題,你把request去掉試試
Mybatis-Plus:https://gitee.com/baomidou/my...LomBok:https://github.com/rzwitserlo...
...more
在application.properties添加
spring.jackson.serialization.write-dates-as-timestamps = true我記得是有appid的,后臺(tái)可以用一套系統(tǒng),根據(jù)appid返回對(duì)應(yīng)平臺(tái)的數(shù)據(jù)
在使用JDBC連接Mysql數(shù)據(jù)庫(kù),向Mysql數(shù)據(jù)庫(kù)插入一條帶有中文的記錄,在查詢(xún)的時(shí)候,發(fā)現(xiàn)全都是??????
這里寫(xiě)圖片描述
查詢(xún)了一些資料,最簡(jiǎn)單的解決辦法如下:
①:設(shè)置當(dāng)前庫(kù)的編碼
ALTER DATABASE zhongfucheng
CHARACTER SET utf8;
②:設(shè)置當(dāng)前表的編碼
ALTER TABLE customer
CHARACTER SET utf8;
③:使用JDBC連接數(shù)據(jù)庫(kù)時(shí),指定編碼
jdbc:mysql://localhost:3306/zhongfucheng?characterEncoding=utf8
當(dāng)我們完成這三個(gè)步驟的時(shí)候,再插入數(shù)據(jù):就好了
因?yàn)槟忝看蝔or循環(huán)的時(shí)候,給按鈕添加了點(diǎn)擊事件,同時(shí)btn也會(huì)指向不同的按鈕,在最后一次循環(huán)的時(shí)候,btn指向了最后一個(gè)按鈕,所以每次輸出的都是4
北大青鳥(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)師。