你的 ProductCategoryRepository 沒打 @Repository 注解。
題主更新了問題,那么原答案就當(dāng)回到第一問了,至于第二問,講講我個人的看法吧:
其實編程這個東西,很大程度上上是一個經(jīng)驗工種,前期也許需要一點所謂的理解能力去搞懂一些抽象的東西,也可以不去搞懂,只是這樣的話天花板來的會很快;中期需要橫向拓展,因為很多東西是相同的,比如緩存機制,從硬件一路用到分布式,但是你不靠經(jīng)驗去了解它是很難搞明白怎么用好它的;后期需要縱向深入,中期積累的各方面經(jīng)驗足夠你在一個領(lǐng)域去爆發(fā)的時候,你就可以嘗試一下所謂的一通百通。
當(dāng)然所謂的前中后期的說法是我自創(chuàng)的,不代表普適規(guī)則,但是終究多數(shù)人是平庸的(無貶義 畢竟我自己也只是個平庸的普通人),在沒有足夠驚艷的天賦時,只能靠經(jīng)驗來強化自己的能力,又由于這個行業(yè)的特殊性,幾乎可以說一生都在學(xué)習(xí)。
我從初三開始學(xué)習(xí)編程,批處理入的門,也進(jìn)過學(xué)校的信奧班(奈何智商不夠,沒讀完 ORZ);
高中主用易語言,我知道很多人瞧不起這個東西,但是靠它我可以很快得上手 windows gui 編程,這讓我明白了很多 gui 系統(tǒng)的消息機制到底是什么,也讓我明白了一個通用ui組件的抽象化是怎么做的,中間斷斷續(xù)續(xù)學(xué)過 php 和 python(為了折騰 ss),在此期間我買過 vps 綁過域名也通過 http 權(quán)威指南 懂了一個http請求的歷程;
高中的過分沉迷編程讓我的文化課成績異常糟糕,我那一屆98%的人上了本科而我就是那2%,所以讀了大專
到了大一,按部就班學(xué)習(xí) c 語言和網(wǎng)頁,此時的我對 c 已經(jīng)沒太多興趣因為用過高級語言就不想用那么麻煩的東西了 Orz,而網(wǎng)頁我也只是處于知道盒模型但是搞不定兼容 js 更是一竅不通的水平;
到大二我開始用 node.js ,我現(xiàn)在的所有js知識全部來源于此,5月份我開始學(xué)習(xí) java,哪怕一行也沒寫過,我也能看過基礎(chǔ)語法后當(dāng)晚用 java 就寫一個把 .java 轉(zhuǎn)換為 .jsp 的東西(當(dāng)時猜測 jsp 的性質(zhì)與 php 類似);
現(xiàn)在我大三正準(zhǔn)備找實習(xí)呢 Orz
講我的經(jīng)歷是因為,以我現(xiàn)在的經(jīng)驗,還有對于編譯原理的一些理論了解(比如我在 sf 倒數(shù)第二篇文章),對于一些 oo 的語言我可以根據(jù)文檔很快上手,其框架也大抵如此,不過這是將將能用而已,很多我重新造輪子的地方后面就發(fā)現(xiàn)框架已經(jīng)提供了我不知道而已。
因此一個語言是變化的,一個框架也是會更新?lián)Q代的,經(jīng)典的思想雖然不會太快過時,但也避不過時代巨輪的碾壓,畢竟硬件性能足夠了我們可能就不那么需要扣內(nèi)存了(所以現(xiàn)如今不用太會算法也足夠找份吃飯的工作了),所以是學(xué)不完的。
那么到底怎么快速上手一門語言或者框架呢,無他,唯手熟爾。
這個答案可能不會被很多人看到,但是我自己是個從彎路走上來的人,甚至可以說不算是一個科班出身的,希望能幫到一些人吧。
突然看到標(biāo)題說的是從0到精通???
精通這個詞,就不提 c++ 那種多范式的變態(tài),java 這種 語言規(guī)范 加 虛擬機規(guī)范 合起來近千頁的,0基礎(chǔ)一個小時看的完?那還有 Spring 等等之類的文檔還沒開始看呢。
假定我們討論的是,寫的產(chǎn)品的代碼量是一個小時內(nèi)能寫完的。
我見過有研究生寫的代碼是『一個main幾千行』,沒有任何編程思想(指的是抽象 模塊化 這些)在里面。
事實上,語言本身是可以用數(shù)學(xué)抽象的,不排除有人對語言的理解就是能一目了然,甚至可以按部就班硬寫個所謂的產(chǎn)品(只要求跑的起來,結(jié)果正確)。
但是還有個大前提,那就是他寫的是這個產(chǎn)品,包不包含其他知識點,你可以用 c 寫個純數(shù)學(xué)算法,但是你用 c 寫個 http 響應(yīng)哪怕是個 socket,你都得還要學(xué)習(xí)一下網(wǎng)絡(luò)協(xié)議,這種情況下,一個小時能不能把網(wǎng)絡(luò)協(xié)議看完都是未知數(shù),遑論寫產(chǎn)品。
沒有太明白,是用springboot啟動dubbo monitor,還是使用springboot啟動dubbo服務(wù),dubbo服務(wù)啟用monitor?
springboo本身沒有太多的含義,只是在spring基礎(chǔ)上進(jìn)行了一層應(yīng)用封裝,它不改變之前的配置方法。
你可以按照下列步驟嘗試一下:
var book = {
title: "Professional Javascript",
authors: [
"Nicholas C. zakas",
"Mike"
],
edition: 3,
year: 2011,
};
var jsonText = JSON.stringify(book, function(key , value){
console.log(key+ ' :' + value)
return value
});
console.log(jsonText);
你會發(fā)現(xiàn),得到的結(jié)果是
:[object Object]
title :Professional Javascript
authors :Nicholas C. zakas,Mike
0 :Nicholas C. zakas
1 :Mike
edition :3
year :2011
{"title":"Professional Javascript","authors":["Nicholas C. zakas","Mike"],"edition":3,"year":2011}
而第一個key為空的那個value,是個object,打印出來,發(fā)現(xiàn)他正好就是book本身,由于你的filter函數(shù)直接return 222
會導(dǎo)致直接將book的值設(shè)置為222,導(dǎo)致switch全部失效。
var book = {
title: "Professional Javascript",
authors: [
"Nicholas C. zakas",
"Mike"
],
edition: 3,
year: 2011,
};
var jsonText = JSON.stringify(book, function(key , value){
if(key=' ')
console.log(value)
return value
});
console.log(jsonText);
得到的結(jié)果是
{ title: 'Professional Javascript',
authors: [ 'Nicholas C. zakas', 'Mike' ],
edition: 3,
year: 2011 }
Professional Javascript
[ 'Nicholas C. zakas', 'Mike' ]
Nicholas C. zakas
Mike
3
2011
{"title":"Professional Javascript","authors":["Nicholas C. zakas","Mike"],"edition":3,"year":2011}
不難發(fā)現(xiàn), json.stringfy的第二個類型為函數(shù)的參數(shù),會把傳進(jìn)來的參數(shù)本身,構(gòu)造成key: ' ', value: value 形式進(jìn)行過濾,然后再過濾屬性,遞歸下去。
就是把一段文本中除了a或者img以外的所有標(biāo)簽都干掉,然后干掉a以及img中的css?
如果我沒有理解錯的話,大致是這樣的:
(() => {
let str = `
<p style="color: blued">text</p>
<img src="XXX" style="color: red" />
<a href="XXX" style="color: red" >Link</a>
<p>text</p>
`
// 邏輯分兩塊:
// 1. 將非`img`、`a`標(biāo)簽的tag替換為轉(zhuǎn)義符
// 2. 將`img`、`a`標(biāo)簽中的`style`干掉
let text = str.replace(/<(\/?)([\w]+)(.*?)(\/?)>/g, (_, selfClosing, tag, content, closing) => {
if (['img', 'a'].includes(tag.toLowerCase())) {
return `<${selfClosing}${tag}${content.replace(/style=".*?"/g, '')}${closing}>`
} else {
return `<${selfClosing}${tag}${content}${closing}>`
}
})
console.log(text)
})()
如果對的話,也別什么有償了,覺得對你有幫助的話,點個follow也是極好的:https://github.com/Jiasm
雙擊pom.xml
在pom.xml里右鍵,選擇Maven -> Reimport
超時錯誤是服務(wù)端問題,又不是客戶端問題。網(wǎng)絡(luò)出錯很正常啊,重試就好。
這個接口返回的數(shù)據(jù)只是個 json 不是 jsonp 呀…
jsonp 應(yīng)該是這樣的:
__jp0({"singerList": {"data": {....} }})一個打叉的圖,一個透明底的框圖,絕對定位
4 的意思是說獲取到sessionid之后再刪除 然后再訪問 得不到sessionid嗎?
tomcat應(yīng)該是判斷請求中如果有sessionid就繼續(xù)會話 , 沒有的話就new 一個新的session 返回sessionid吧
在瀏覽器把包含sessionid的cookie刪了 , 服務(wù)器應(yīng)該會認(rèn)為是一個新的會話 返回新的sessionid 和路徑?jīng)]有關(guān)系
你沒有寫extends啊
class Fish extends Animal{...}
如果注解是在方法上,可以得到,如果注解在類上則為null,把注解寫到方法上。
百度搜索python GIL
自問自答,結(jié)束
這是我的理解,如果有錯誤,希望大佬不吝賜教
實現(xiàn)key-value咯,參見https://www.zhihu.com/question/30527705。
當(dāng)然時間多的話你可以對比各種查找樹實現(xiàn)key-value存儲結(jié)構(gòu)的存儲和查詢效率,搞個benchmark,然后就可以寫一篇博客。
建議你看看下面這個篇文章,實現(xiàn)機制差不多
微信的網(wǎng)頁版掃碼登陸原理?
https://www.zhihu.com/questio...
jsonify封裝的內(nèi)部指定了content_type為application/json(mimetype參數(shù))。
用開發(fā)者工具看看請求Request Payload
說下自己的理解,供參考。假設(shè)題主了解網(wǎng)絡(luò)編程和計算機系統(tǒng)的一些基本概念。
簡單概括來說,事件驅(qū)動是實現(xiàn)并發(fā)處理的一種方式。
我們就以HTTP請求的處理過程為例,為簡化說明,僅考慮網(wǎng)絡(luò)IO,不考慮文件IO和數(shù)據(jù)庫等其他過程,也不考慮多核系統(tǒng)。
考慮采用如下最簡模型來處理HTTP請求:
main_loop:
accept()
recv()
parse()
send()
close()
來一個連接,讀取數(shù)據(jù)(請求),解析請求內(nèi)容,返回數(shù)據(jù)(應(yīng)答)。
同一時間只為一個客戶端服務(wù)。在為A客戶端服務(wù)的過程中,B客戶端必須等待。
這種方式非常簡單直接,容易理解,但其無法滿足現(xiàn)實場景的需要——不支持并發(fā)。
現(xiàn)實中,客戶端的請求是并發(fā)的:即當(dāng)一個客戶端的請求還在處理時,另外一個客戶端的請求就會達(dá)到,甚至多個客戶端的請求同時達(dá)到。
而且,recv 和 send等涉及網(wǎng)絡(luò)操作的API由于網(wǎng)絡(luò)數(shù)據(jù)發(fā)送與到達(dá)的不確定性,可能需要等待,CPU會空閑下來——但這種模型下即使CPU空閑了也無法處理其他客戶端的請求,浪費了CPU。
我們采用如下多線程模型,可以解決上述問題:
main_loop:
accept()
start_thread(thread_loop)
thread_loop:
recv()
parse()
send()
close()
exit thread()
即每個客戶端在一個獨立的線程中處理。
當(dāng)一個客戶端的線程執(zhí)行網(wǎng)絡(luò)操作需要等待時,會被操作系統(tǒng)調(diào)度出去,執(zhí)行其他需要干活兒的線程。
似乎完美了解決了我們的問題?
然而并沒有。
因為操作系統(tǒng)創(chuàng)建線程的開銷是比較大的,能夠支持的線程數(shù)量是有限的,通常是幾萬的級別,如果線程太多,就會有很多的CPU浪費在了線程的創(chuàng)建、銷毀、調(diào)度等管理操作上。
所以為了充分發(fā)揮CPU的能力,支持更多的并發(fā)數(shù)量,,在Linux上有另外一種處理并發(fā)的方式:
內(nèi)核提供了監(jiān)聽大量網(wǎng)絡(luò)連接(句柄)可讀、可寫等事件的機制和接口。
應(yīng)用把需要監(jiān)聽對象以及關(guān)心的事件注冊給內(nèi)核,內(nèi)核在有事件達(dá)到時通知應(yīng)用處理。
基于這種機制處理并發(fā)就是事件驅(qū)動。
事件驅(qū)動機制的基本模型是:
create_listen_socket()
register_event_for_listen_socket()
main_loop:
wait_for_event()
check_events:
if listen_socket has event(new client coming) :
accept()
register_event_for_client_socket()
if client_socket has event(new data coming):
recv()
parse()
send()
但這里有一個問題,有可能一個客戶端剛讀取了一部分?jǐn)?shù)據(jù),就沒了,剩下的還在網(wǎng)絡(luò)中沒過來,需要繼續(xù)等待。
這就需要把當(dāng)前的讀取內(nèi)容和請求處理狀態(tài)(也即上下文)保存起來,繼續(xù)處理其他客戶端的事件。
然后下次這個客戶端再有事件到來時再找回上下文繼續(xù)處理。
這其實需要應(yīng)用自己做一些任務(wù)調(diào)度相關(guān)的上下文保存和切換工作。
當(dāng)使用多線程處理并發(fā)時,操作系統(tǒng)幫我們做了這些工作,我們無需關(guān)心任務(wù)切換。
因為一個線程就只處理一個客戶端,反復(fù)調(diào)用recv把一個請求的數(shù)據(jù)讀完然后解析處理就可以了,也不用擔(dān)心沒數(shù)據(jù)到來時,recv阻塞了其他客戶端的處理。
所以多線程編寫并發(fā)代碼非常簡單直接。
如上,事件驅(qū)動機制是Linux上解決并發(fā)問題的一種高效編程模型。
應(yīng)用反復(fù)探測事件,對接收到的事件進(jìn)行逐個處理的過程就是事件循環(huán)。
那么同步和異步概念體現(xiàn)在哪里呢?
所謂同步就是我們執(zhí)行一個任務(wù),一直等待任務(wù)執(zhí)行結(jié)束。
所謂異步就是我們執(zhí)行一個任務(wù),不等待任務(wù)執(zhí)行結(jié)束,繼續(xù)去干其他活兒,任務(wù)結(jié)果后有個通知,或者干脆不關(guān)心任務(wù)的執(zhí)行結(jié)果。
在多線程模型中,每接收到一個新的客戶端就創(chuàng)建一個線程處理,這就是一種異步處理。
在事件驅(qū)動模型中,當(dāng)沒有數(shù)據(jù)可讀時,就把這個客戶端繼續(xù)放到監(jiān)聽隊列中監(jiān)聽,也是一種異步。
如果我們考慮文件IO,把IO請求丟給另外一個或一組線程(線程池)處理,處理完后通知主線程,也是一種異步。
北大青鳥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)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。