頭條資訊項(xiàng)目課(2)筆記(springboot/volecity/IoC/AOP)

課程目錄:
SpringBoot工程
? 參數(shù)解析
? HTTP Method
? Velocity
? Request/Response/Session
? Error/重定向
? Logger
? IoC
? AOP/Aspect

Spring Boot
官方文檔
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/
http://docs.spring.io/spring-boot/docs/current/reference/html/index.html
例子 https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples
Spring官網(wǎng):
http://www.spring.io
Spring項(xiàng)目初始化
https://start.spring.io/

1

本課用到工具是:idea邮丰,maven,關(guān)于maven的配置可以百度嘶是。pom.xml如果出問(wèn)題一般都是倉(cāng)庫(kù)的jar沒(méi)下載完整窟赏,我們直接把原來(lái)的刪除了腥沽,讓它重新去更新依賴。

2

將springboot官網(wǎng)生成的壓縮包解壓得到的文件導(dǎo)入idea。自帶application风喇,應(yīng)該是程序的入口吧。


QQ截圖20170324225731.jpg

我們按照正常思維缕探,先來(lái)寫(xiě)一個(gè)controller
如上圖魂莫。
我們按Crtl+F5啟動(dòng)Tomcat。然后輸入如下圖的地址爹耗。


QQ瀏覽器截屏未命名.png

主要就是注解的工作了耙考,RequestMapping就是一個(gè)請(qǐng)求映射秽誊,相當(dāng)于struts2中的配置文件這樣子去配置吧。優(yōu)點(diǎn)還是比較明顯的琳骡,比以前struts2方便很多。
ResponseBody返回一個(gè)請(qǐng)求內(nèi)容讼溺,就是我們r(jià)eturn的內(nèi)容返回到網(wǎng)頁(yè)了楣号。


我們現(xiàn)在建立另外一個(gè)controller,正式開(kāi)始springmvc的筆記怒坯。

代碼如下:


QQ截圖20170324232929.jpg

運(yùn)行效果如下:


QQ截圖20170324233306.jpg

參數(shù)解釋如下:
@RequestMapping(value = {"/profile/{groupId}/{userId}"})
@PathVariable中文意思為路徑中的變量炫狱,通過(guò)前臺(tái)傳參,后臺(tái)聲明接收參數(shù)即可

@RequestParam(value = "type", defaultValue = "1") int type,
@RequestParam中文意思為請(qǐng)求參數(shù)剔猿,defaultValue默認(rèn)參數(shù)视译。XXX?type=XXX.


現(xiàn)在我們要給它返回一個(gè)頁(yè)面归敬。

QQ截圖20170324234922.jpg

我們建立一個(gè)news.vm這樣一個(gè)頁(yè)面酷含,寫(xiě)個(gè)hello vm。http://localhost:8080/vm 就會(huì)出現(xiàn)我們寫(xiě)在頁(yè)面的東西啦汪茧。這個(gè)簡(jiǎn)單不多說(shuō)椅亚,關(guān)于vm是什么?這相當(dāng)于jsp吧舱污,就是一種前端展示的模板呀舔。

QQ截圖20170324235355.jpg

velocity資料:https://www.ibm.com/developerworks/cn/java/j-lo-velocity1/
官網(wǎng)api:https://velocity.apache.org/engine/devel/user-guide.html

下面圖是velocity的一些簡(jiǎn)潔資料。


QQ截圖20170324235936.jpg
QQ截圖20170325010334.jpg

QQ截圖20170324234922中紅色框的扩灯,在前臺(tái)是這樣讀取的

QQ截圖20170325003034.jpg

運(yùn)行如下:

QQ截圖20170325003418.jpg

$!{value1}
${value2}
媚赖!對(duì)變量存在與否進(jìn)行檢查,自己測(cè)試看珠插。

 #foreach($color in $colors)
            Color  $!{foreach.index}/$!{foreach.count}:$!{color}
        #end

這個(gè)是遍歷list惧磺。跟增強(qiáng)型for循環(huán)類(lèi)似。colors是集合丧失,color是變量豺妓。
以下是map在java中的基礎(chǔ)知識(shí),結(jié)合vm的map解析布讹,都是差不多的琳拭。自行腦補(bǔ)。

java中什么叫entryset?
是java中的一個(gè)對(duì)象描验,一般可以通過(guò)map.entrySet()得到白嘁。
1,entrySet實(shí)現(xiàn)了Set接口膘流,里面存放的是鍵值對(duì)絮缅。一個(gè)K對(duì)應(yīng)一個(gè)V鲁沥。
2,用來(lái)遍歷map的一種方法耕魄。
Set<Map.Entry<String, String>> entryseSet=map.entrySet();
for (Map.Entry<String, String> entry:entryseSet) {
System.out.println(entry.getKey()+","+entry.getValue());
}
通過(guò)getKey()得到K画恰,getValue得到V。
3吸奴,還有一種是keySet允扇。
Set<String> set = map.keySet();
for (String s:set) {
System.out.println(s+","+map.get(s));
}

里面存的是Map的K。
獲取對(duì)象屬性和java也是一樣的了则奥,不過(guò)多解釋考润,velocity和前端 java的很多知識(shí)都是相同。


QQ截圖20170325010449.jpg

我們經(jīng)常寫(xiě)網(wǎng)頁(yè)读处,主要是包括頭部底部和主題部分糊治,由于頭部和底部是不變的導(dǎo)航欄之類(lèi)的,現(xiàn)在我們用include和parse標(biāo)簽去引入和解析罚舱。
這是兩個(gè)不同的標(biāo)簽井辜,include是單純引入,parse是解析引入馆匿,字面意思很容易理解抑胎。


QQ截圖20170325010539.jpg
QQ截圖20170325010534.jpg

更加完整的Velocity 語(yǔ)法(轉(zhuǎn))
http://www.cnblogs.com/siye1982/archive/2007/11/14/959678.html

QQ瀏覽器截屏未命名.png

下面是一些參數(shù),目前還不能理解有什么作用渐北,先放上來(lái)吧阿逃。sessionid用來(lái)標(biāo)注是不是同一個(gè)用戶。


QQ瀏覽器截屏未命名.png
QQ瀏覽器截屏未命名.png
QQ瀏覽器截屏未命名2.png

response:


QQ瀏覽器截屏未命名.png
QQ瀏覽器截屏未命名2.png

重定向和錯(cuò)誤:

QQ瀏覽器截屏未命名.png
QQ瀏覽器截屏未命名.png
QQ瀏覽器截屏未命名.png
QQ瀏覽器截屏未命名.png
QQ瀏覽器截屏未命名.png
QQ瀏覽器截屏未命名2.png

QQ瀏覽器截屏未命名.png

IOC依賴注入也叫控制反轉(zhuǎn)的東西赃蛛。
先建立業(yè)務(wù)層的類(lèi)

也就是我們這是控制層恃锉,也就是說(shuō)我們要去調(diào)用業(yè)務(wù)層的代碼去做一些操作,我們傳統(tǒng)的方法就是在構(gòu)造方法去完成初始化new操作呕臂,如下圖

QQ瀏覽器截屏未命名.png
QQ截圖20170324232708.jpg

使用了IOC注入破托,只需要在service層上加@Service就可以了

QQ瀏覽器截屏未命名.png

除了注解也可以寫(xiě)在properties中xml文件。

QQ瀏覽器截屏未命名.png

通過(guò)IoC把所有變量都初始化好歧蒋。


Aop面向切面編程

QQ瀏覽器截屏未命名.png

我們打log是如圖這樣子土砂。


QQ瀏覽器截屏未命名.png

但是我們有了Aop之后呢。我們寫(xiě)上注解就可以作為一個(gè)切面谜洽,通過(guò)制定包或類(lèi)萝映,實(shí)現(xiàn)切面編程。


QQ瀏覽器截屏未命名.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末阐虚,一起剝皮案震驚了整個(gè)濱河市序臂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌实束,老刑警劉巖奥秆,帶你破解...
    沈念sama閱讀 223,126評(píng)論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逊彭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡构订,警方通過(guò)查閱死者的電腦和手機(jī)侮叮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)悼瘾,“玉大人签赃,你說(shuō)我怎么就攤上這事》质” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,941評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵歹嘹,是天一觀的道長(zhǎng)箩绍。 經(jīng)常有香客問(wèn)我,道長(zhǎng)尺上,這世上最難降的妖魔是什么材蛛? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,294評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮怎抛,結(jié)果婚禮上卑吭,老公的妹妹穿的比我還像新娘。我一直安慰自己马绝,他們只是感情好豆赏,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著富稻,像睡著了一般掷邦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上椭赋,一...
    開(kāi)封第一講書(shū)人閱讀 52,874評(píng)論 1 314
  • 那天抚岗,我揣著相機(jī)與錄音,去河邊找鬼哪怔。 笑死宣蔚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的认境。 我是一名探鬼主播胚委,決...
    沈念sama閱讀 41,285評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼元暴!你這毒婦竟也來(lái)了篷扩?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,249評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤茉盏,失蹤者是張志新(化名)和其女友劉穎鉴未,沒(méi)想到半個(gè)月后枢冤,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铜秆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評(píng)論 3 343
  • 正文 我和宋清朗相戀三年淹真,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片连茧。...
    茶點(diǎn)故事閱讀 40,973評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡核蘸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出啸驯,到底是詐尸還是另有隱情客扎,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評(píng)論 5 351
  • 正文 年R本政府宣布罚斗,位于F島的核電站徙鱼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏针姿。R本人自食惡果不足惜袱吆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望距淫。 院中可真熱鬧绞绒,春花似錦、人聲如沸榕暇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,797評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)彤枢。三九已至撤蟆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間堂污,已是汗流浹背家肯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,926評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盟猖,地道東北人讨衣。 一個(gè)月前我還...
    沈念sama閱讀 49,431評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像式镐,于是被迫代替她去往敵國(guó)和親反镇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理娘汞,服務(wù)發(fā)現(xiàn)歹茶,斷路器,智...
    卡卡羅2017閱讀 134,722評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,871評(píng)論 6 342
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法惊豺,內(nèi)部類(lèi)的語(yǔ)法燎孟,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法尸昧,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,669評(píng)論 18 399
  • 文/楓丹白露 01 10月8日,在河南南陽(yáng)市華龍高級(jí)中學(xué)的操場(chǎng)上幢妄,上演了一場(chǎng)大戲: 幾十部從學(xué)生那里沒(méi)收來(lái)的手機(jī)或...
    楓丹白露_閱讀 745評(píng)論 10 16
  • 一次在外面做職場(chǎng)分享的時(shí)候,一個(gè)女孩子在結(jié)束后留下來(lái)跟我說(shuō):“老師置吓,我在公司里四年多了,一直沒(méi)有升職加薪缔赠,就連比我...
    碧藍(lán)海天閱讀 214評(píng)論 2 1