除了RuntimeException及其子類,其他異常都是要處理的
我奇怪的是難道你throw t1就能編譯通過了?
編輯:
最外層catch的是Exception,t是Throwable,是Exception的父類對象,捕獲不到,可以把最外層Exception改成Throwable看看
而t1實(shí)際上是IOException所以可以捕獲
No active profile set沒有屬性文件
resource目錄下加上application.properties
里面定義端口號,比如server.port=8080
只要在一個(gè)事務(wù)里哪怕是不同庫里的操作,都是一起成功或一起失敗。
為什么不自己試試呢?
set autocommit = 0;
update db1.t1 set c1='test' where id = 1 ;
select sleep(3);
update db2.t1 set c1='test' where id = 1;/*db2.t1表故意不要創(chuàng)建c1列制造錯(cuò)誤*/
select sleep(3);
commit;這句話出自<<深入理解Java虛擬機(jī)>>第二版,你需要看完這本書的垃圾收集算法,才知道為什么.簡單的說你錯(cuò)在哪呢,如果新生代所有的對象都在鏈上不可回收呢?
確定哪些對象可以回收通常有兩種算法,一種是引用計(jì)數(shù),一種是可達(dá)性分析算法.HotSpot采用的就是第二種.第二種會通過一些稱為GC Root的對象.可作為GC Roots的對象包括下面幾種:
這些引用會形成一條鏈,凡是在鏈上的說明還在使用,不可回收.
IllegalArgumentException:非法參數(shù)異常,
試下這個(gè),應(yīng)該可以。
給你講述下過程:
去了stackoverflow,debug。最后發(fā)現(xiàn)data為null,,加油吧,我們需要學(xué)的還很多
下次遇到問題debug下,看是哪條代碼出現(xiàn)問題了,通過回答你,我也學(xué)到了很多
關(guān)鍵點(diǎn)在這里: throw new IOException();
try (OutputStream out = new FileOutputStream(newPath.toString())) {
out.write(data);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("異常是這么拋出的");
//throw new RuntimeException(e);
}
public static String base64ToImg(String src) throws IOException {
String uuid = UUID.randomUUID().toString();
StringBuilder newPath = new StringBuilder("xx");
newPath.append("xx").
append(uuid).
append("xx");
if (src == null) {
return null;
}
byte[] data = Base64.getDecoder().decode(src);
try (OutputStream out = new FileOutputStream(newPath.toString())) {
out.write(data);
} catch (IOException e) {
e.printStackTrace();
}
return newPath.toString();
}
補(bǔ)充另外一種常用關(guān)閉資源:
public static String base64ToImg(String src) throws IOException {
String uuid = UUID.randomUUID().toString();
StringBuilder newPath = new StringBuilder("xx");
newPath.append("xx").
append(uuid).
append("xx");
if (src == null) {
return null;
}
byte[] data = null;
OutputStream out = null;
Base64.Decoder decoder = Base64.getDecoder();
try {
out = new FileOutputStream(newPath.toString());
data = decoder.decode(src);
out.write(data);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
out.close();
}
}
return newPath.toString();
}沒寫IP地址
不太了解你的具體場景, 另外假設(shè)你是 B/S
我之前的做法是, 直接生成一個(gè)js
服務(wù)端只驗(yàn)證數(shù)據(jù)就可以了
保存相鄰兩級的 id的 單向 集合關(guān)系
比如
湖北省.id : [武漢市.id, 襄樊市.id, ...]
.....
武漢市.id : [洪山區(qū).id, 東湖高新區(qū).id, ...]
//省市區(qū)三個(gè)級別的話
//一共就是 34(省級行政區(qū)) + 294(地級市) 條記錄
然后驗(yàn)證一個(gè)省市區(qū)串是否正確 只需要redis兩次請求
ps: 前提條件是你傳遞上來的是 省-市-區(qū) 而不是 僅僅一個(gè) 區(qū)
你服務(wù)器端用的是 http,客戶端請求用 https 當(dāng)然有問題。
asp.net mvc 5.2.3
不是通過JSON/Body格式傳你的,你可以用@ModelAttribute替換@RequestBody,取Form/URL格式傳值。而且兩種方式對日期等特殊類型的format處理不太一樣。
開發(fā)時(shí)啟動慢,原因很多
1.你電腦里面啟動的其他軟件占用資源了。比如你打開了很多網(wǎng)頁,打開了音樂播放器,打開了mysql服務(wù)等等,系統(tǒng)資源是一定的,你多他就少。
2.ide每次需要預(yù)編譯,檢查你的項(xiàng)目有沒有編譯錯(cuò)誤,這個(gè)一般會耗費(fèi)一點(diǎn)時(shí)間。如果你的ide還裝了其他插件,插件也會進(jìn)行檢查,會耗費(fèi)一定的時(shí)間。
3.之前啟動的歷史,由于你stop服務(wù)不當(dāng),導(dǎo)致java進(jìn)程駐留在系統(tǒng),同時(shí)多個(gè)java進(jìn)程在系統(tǒng)中會導(dǎo)致啟動失敗或者啟動非常之慢
我剛好寫過這個(gè)邏輯,你想要問什么?
api安全設(shè)計(jì)、精簡思想,提高安全性,符合rest api設(shè)計(jì)風(fēng)格,加一個(gè)router而已,對效率影響微乎其微?,F(xiàn)在各大公司都紛紛開始使用這種方式了。
想象一下你的app有一萬個(gè)業(yè)務(wù),你需要一萬個(gè)接口嗎?維護(hù)成本怎么算,重構(gòu)怎么算,迭代怎么看,code reviewer 怎么說?這些問題都會冒出來的,現(xiàn)在一個(gè)統(tǒng)一入口,統(tǒng)一路由,一目了然。
再比如你抓取某app的數(shù)據(jù),發(fā)現(xiàn)他們的api好多啊,而且請求頭、參數(shù)什么的全部暴露出來了,安全性不高的api基本就是羊毛黨的口頭肉,統(tǒng)一API入口后,會發(fā)現(xiàn)想要拼接模擬api的難度系數(shù)上升了。
默認(rèn)大小可以使用:java -XX:+PrintFlagsFinal -version | findstr HeapSize 這個(gè)命令查看
html 代碼可能長得下面這樣:
<!-- 選項(xiàng)列表 -->
<div class='header'>選項(xiàng)</div>
<div class='cbox-list'>
<label>
<input type='checkbox' class='cbox-input' data-id='f12' data-type='member' data-name='her' />her
</label>
<label>
<input type='checkbox' class='cbox-input' data-id='f11' data-type='love' data-name='me' />me
</label>
</div>
JavaScript 代碼可能長得下面這種:
var cBoxInputSet = document.querySelectorAll('.cbox-list .cbox-input');
// 待提交的數(shù)據(jù)
var postData = {
list: []
};
var cur = null;
var single = null;
for (var i = 0; i < cBoxInputSet.length; ++i)
{
cur = cBoxInputSet[i];
if (cur.checked) {
single = {
"attribute-id": cur.getAttribute('data-id') ,
type: cur.getAttribute('data-type') ,
name: cur.getAttribute('data-name')
};
postData['list'].push(single);
}
}
// 這個(gè)就是要發(fā)送的數(shù)據(jù)了
postData = JSON.stringify(postData);
postData 格式如下:
{
"list": [
{
"attribute-id": "f11" ,
"name": "me" ,
"type": "love"
} ,
....
]
}一、分析
找不到包應(yīng)該為路徑問題,項(xiàng)目能正常啟動,maven編譯不過,猜測所打jar包出現(xiàn)的問題
二、原因
參考:maven mulit-module dependency package not found
問題出現(xiàn)在maven spring boot打包插件上
1.spring boot packaging plugin
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
打包后所有的包和類都放到了BOOT-INF文件夾中
2.maven packaging plugin
build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
</plugins>
</build>
包在根路徑下
三、解決方案
替換build插件為maven打包插件即可
你這個(gè)問題應(yīng)該是這樣的,你現(xiàn)看看我在Vue中使用了Axios,對Axios進(jìn)行了封裝,鏈接地址: 動態(tài)Axios配置 注意看對請求成功的返回?cái)?shù)據(jù)封裝
一般封裝都會直接返回res.data,所以狀態(tài)碼或者頭信息之類的就獲取不到,你要做的就是直接返回response,把res.data改為res就能拿到狀態(tài)碼和頭信息之類的信息了。
希望能幫助到你! ^_^
pom文件檢查一下jar包沖突情況
json是無序集合
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jī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ù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。