Spring實(shí)戰(zhàn)第五版讀書筆記——(一)

第一部分 Spring 基礎(chǔ)

第一章 Spring起步

唯一的不變就是變化狡耻,Spring框架新的關(guān)注點(diǎn)包括:
1、微服務(wù)猴凹。
2夷狰、反應(yīng)式編程。
3郊霎、Spring Boot沼头。

什么是Spring?

組件

任何實(shí)際的應(yīng)用程序都是由很多組件組成的。每個(gè)組件負(fù)責(zé)整個(gè)應(yīng)用功能的一部分进倍。這些組件需要與其它的應(yīng)用元素進(jìn)行協(xié)調(diào)以完成自己的任務(wù)土至。當(dāng)應(yīng)用程序運(yùn)行時(shí),需要以某種方式創(chuàng)建并引入這些組件猾昆。在Spring中陶因,這些組件可以稱為Bean。

容器

Spring的核心是提供了一個(gè)容器(container)垂蜗,通常稱為Spring應(yīng)用上下文(Spring Application Context)楷扬,它們會(huì)創(chuàng)建和管理這些組件。

依賴注入

Spring通過(guò)依賴注入DI(Dependency Injection)的模式么抗,借助于自動(dòng)裝配autowiring和組件掃描component scanning毅否,將Bean裝配在一起。組件掃描技術(shù)使得Spring能夠自動(dòng)發(fā)現(xiàn)應(yīng)用類路徑下的組件蝇刀,并將它們創(chuàng)建成Spring應(yīng)用上下文中的bean螟加。通過(guò)自動(dòng)裝配技術(shù),Spring能夠自動(dòng)為組件注入它們所依賴的其它bean吞琐。

Spring Boot

Spring Boot是Spring框架的擴(kuò)展捆探,通過(guò)自動(dòng)配置autoconfiguration,大幅度減少了構(gòu)建應(yīng)用所需要的顯示配置的數(shù)量站粟,極大的改善了Spring的開(kāi)發(fā)黍图。

初始化Spring應(yīng)用

Spring Initializr是一個(gè)基于瀏覽器的web 應(yīng)用,同時(shí)也是一個(gè)REST API奴烙,能夠生成一個(gè)Spring項(xiàng)目結(jié)構(gòu)的骨架助被。使用它的方式包括:
1、通過(guò)https://start.spring.io/的web應(yīng)用切诀。
2揩环、在命令行中使用curl命令
3、在命令行中使用SpringBoot命令行接口幅虑,Spring Boot CLI丰滑。
4、在IDE倒庵,例如Spring Tool Suite褒墨,IntelliJ IDEA,NetBeans中創(chuàng)建新項(xiàng)目擎宝。
Spring Initializr默認(rèn)使用具有JAR的打包方式郁妈,這是基于云思維做出的選擇。

spring-boot- maven-plugin

這個(gè)插件提供了一些重要功能:
1绍申、提供了一個(gè)maven goal噩咪。
2锄奢、確保依賴的所有庫(kù)在運(yùn)行時(shí)類路徑下是可用的,并且都包含在可執(zhí)行的JAR文件中剧腻。
3拘央、在JAR中生成一個(gè)manifest文件,將引導(dǎo)類聲明為可執(zhí)行JAR的主類书在。

編寫Spring應(yīng)用

Spring MVC

Spring MVC是Spring自帶的Web框架灰伟,它的核心是控制器controller的理念∪逖控制器是處理請(qǐng)求栏账,并以某種方式進(jìn)行信息響應(yīng)的類。

Spring Boot Dev Tools

Dev Tools 提供了一些開(kāi)發(fā)期的工具栈源,包括:
1挡爵、代碼變更后自動(dòng)重啟。
2甚垦、瀏覽器自動(dòng)刷新茶鹃。
3、自動(dòng)禁用模版緩存艰亮。
4闭翩、內(nèi)置H2控制臺(tái)。

第二章 開(kāi)發(fā)Web應(yīng)用

在SpringWeb引用中迄埃,獲取和處理數(shù)據(jù)是控制器的任務(wù)疗韵,將數(shù)據(jù)渲染到HTML中并在瀏覽器中展現(xiàn)是視圖的任務(wù)。

展現(xiàn)信息

創(chuàng)建Web應(yīng)用的步驟:
1侄非、構(gòu)建領(lǐng)域類蕉汪,即實(shí)體。
2逞怨、創(chuàng)建控制器類者疤。
3、設(shè)計(jì)視圖:JSP骇钦,Thymeleaf宛渐,F(xiàn)reeMarker竞漾,Mustache眯搭、Groovy的模板。靜態(tài)內(nèi)容要放在/static目錄下业岁。

處理表單提交

校驗(yàn)表單輸入

Spring支持Java的Bean Validation API鳞仙,也被稱為JSR-303。

第三章 使用數(shù)據(jù)

使用JDBC讀取和寫入數(shù)據(jù)

Spring對(duì)JDBC的支持要?dú)w功于JdbcTemplate類笔时。
可以將表結(jié)構(gòu)創(chuàng)建語(yǔ)句schema.sql棍好,數(shù)據(jù)文件data.sql文件放在src/main/resources文件夾下,Spring boot會(huì)自動(dòng)加載。

使用JPA讀取和寫入數(shù)據(jù)

Spring Data包含多個(gè)子項(xiàng)目借笙。Spring Data JPA基于關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行JPA持久化扒怖。

DSL

Spring Data定義了一組小型的領(lǐng)域特定語(yǔ)言Domain-Specific Language,通過(guò)方法簽名來(lái)定義查詢业稼,但復(fù)雜的查詢還是建議使用@Query注解來(lái)實(shí)現(xiàn)盗痒。

第四章 保護(hù)Spring

啟用Spring Security

只需要將Spring Security添加到項(xiàng)目的構(gòu)建文件中,我們就得到了以下特性:
1低散、所有的HTTP請(qǐng)求路徑都需要認(rèn)證
2俯邓、不需要特定的角色和權(quán)限
3、沒(méi)有登錄頁(yè)面熔号。
4稽鞭、認(rèn)證過(guò)程是通過(guò)HTTP basic認(rèn)證對(duì)話框?qū)崿F(xiàn)的。
5引镊、系統(tǒng)只有一個(gè)用戶朦蕴,用戶名為user。

Spring Security配置

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
     protected void configure(AuthenticationManagerBuiler auth){

     }
    @Override
     protected void configure(HttpSecurity http) throw Exception{
         //web級(jí)別安全性定義
         //1弟头、配置自定義的登錄頁(yè)面梦重。
        // 2、預(yù)防跨站請(qǐng)求偽造亮瓷。
        // 3琴拧、支持用戶退出應(yīng)用。
     }

}

已經(jīng)認(rèn)證的用戶信息可以通過(guò)SecurityContext對(duì)象來(lái)獲取嘱支。

第五章 使用配置屬性

Spring有兩種不同的配置:
1蚓胸、Bean裝配。
2除师、屬性注入沛膳。Spring的環(huán)境抽象是各種配置屬性的一站式服務(wù)。Spring環(huán)境會(huì)拉去多個(gè)屬性源汛聚,例如JVM系統(tǒng)屬性锹安,操作系統(tǒng)環(huán)境變量屬性,命令行參數(shù)倚舀,應(yīng)用屬性配置文件叹哭,并將其聚合到一個(gè)源,然后注入到Spring的bean中痕貌。
默認(rèn)情況下风罩,Spring Boot通過(guò)Logback配置日志。
Spring提供了@ConfigurationProperties注解來(lái)支持配置屬性的注入舵稠,還可以使用profile進(jìn)行配置超升。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末入宦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子室琢,更是在濱河造成了極大的恐慌乾闰,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盈滴,死亡現(xiàn)場(chǎng)離奇詭異汹忠,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)雹熬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門宽菜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人竿报,你說(shuō)我怎么就攤上這事铅乡。” “怎么了烈菌?”我有些...
    開(kāi)封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵阵幸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我芽世,道長(zhǎng)挚赊,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任济瓢,我火速辦了婚禮荠割,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘旺矾。我一直安慰自己蔑鹦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布箕宙。 她就那樣靜靜地躺著嚎朽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柬帕。 梳的紋絲不亂的頭發(fā)上哟忍,一...
    開(kāi)封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音陷寝,去河邊找鬼锅很。 笑死,一個(gè)胖子當(dāng)著我的面吹牛盼铁,可吹牛的內(nèi)容都是我干的粗蔚。 我是一名探鬼主播尝偎,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼饶火,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鹏控!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起肤寝,我...
    開(kāi)封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤当辐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后鲤看,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體缘揪,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年义桂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了找筝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡慷吊,死狀恐怖袖裕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溉瓶,我是刑警寧澤急鳄,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站堰酿,受9級(jí)特大地震影響疾宏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜触创,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一坎藐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哼绑,春花似錦顺饮、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至帽蝶,卻和暖如春赦肋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背励稳。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工佃乘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人驹尼。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓趣避,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親新翎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子程帕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

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