Spring boot 知識(shí)點(diǎn)問(wèn)題及資料整理(逐步整理中)

本篇問(wèn)題主要來(lái)自今日頭條文章轉(zhuǎn)載,轉(zhuǎn)載的目的是添加一些資料的鏈接為了自己方便查閱帆喇。
https://www.toutiao.com/a6646878877215883783


問(wèn)題一:Spring Boot鸽捻、Spring MVC 和 Spring 有什么區(qū)別统锤?

1赦抖、Spring

Spring最重要的特征是依賴注入。所有 SpringModules 不是依賴注入就是 IOC 控制反轉(zhuǎn)。

當(dāng)我們恰當(dāng)?shù)氖褂?DI 或者是 IOC 的時(shí)候璧诵,我們可以開(kāi)發(fā)松耦合應(yīng)用。松耦合應(yīng)用的單元測(cè)試可以很容易的進(jìn)行仇冯。
2之宿、Spring MVC

Spring MVC 提供了一種分離式的方法來(lái)開(kāi)發(fā) Web 應(yīng)用。通過(guò)運(yùn)用像 DispatcherServelet苛坚,MoudlAndView 和 ViewResolver 等一些簡(jiǎn)單的概念比被,開(kāi)發(fā) Web 應(yīng)用將會(huì)變的非常簡(jiǎn)單。

3泼舱、SpringBoot

Spring 和 SpringMVC 的問(wèn)題在于需要配置大量的參數(shù)等缀。


Spring 和Spring MVC需要配置

Spring Boot 通過(guò)一個(gè)自動(dòng)配置和啟動(dòng)的項(xiàng)來(lái)目解決這個(gè)問(wèn)題。為了更快的構(gòu)建產(chǎn)品就緒應(yīng)用程序娇昙,Spring Boot 提供了一些非功能性特征尺迂。


問(wèn)題二:什么是自動(dòng)配置?

Spring 和 SpringMVC 的問(wèn)題在于需要配置大量的參數(shù)冒掌。
我們能否帶來(lái)更多的智能噪裕?當(dāng)一個(gè) MVC JAR 添加到應(yīng)用程序中的時(shí)候,我們能否自動(dòng)配置一些 beans股毫?

Spring 查看(CLASSPATH 上可用的框架)已存在的應(yīng)用程序的配置膳音。在此基礎(chǔ)上,Spring Boot 提供了配置應(yīng)用程序和框架所需要的基本配置铃诬。這就是自動(dòng)配置祭陷。


問(wèn)題三:什么是 Spring Boot Starter 苍凛?

啟動(dòng)器是一套方便的依賴的描述符,它可以放在自己的程序中兵志。你可以一站式的獲取你所需要的 Spring 和相關(guān)技術(shù)醇蝴,而不需要依賴描述符的通過(guò)示例代碼搜索和復(fù)制黏貼的負(fù)載。

例如想罕,如果你想使用 Sping 和 JPA 訪問(wèn)數(shù)據(jù)庫(kù)哑蔫,只需要你的項(xiàng)目包含 spring-boot-starter-data-jpa 依賴項(xiàng),你就可以完美進(jìn)行弧呐。


問(wèn)題四:你能否舉一個(gè)例子來(lái)解釋更多 Starters 的內(nèi)容闸迷?

讓我們來(lái)思考一個(gè) Starter 的例子 -Spring Boot Starter Web。

如果你想開(kāi)發(fā)一個(gè) web 應(yīng)用程序或者是公開(kāi) REST 服務(wù)的應(yīng)用程序俘枫。Spring Boot Start Web 是首選腥沽。讓我們使用 Spring Initializr 創(chuàng)建一個(gè) Spring Boot Start Web 的快速項(xiàng)目。

Spring Boot Start Web 的依賴項(xiàng)

下面的截圖是添加進(jìn)我們應(yīng)用程序的不同的依賴項(xiàng)

Spring boot 為我們添加的依賴

依賴項(xiàng)可以被分為:

Spring - core鸠蚪,beans今阳,context,aop

Web MVC - (Spring MVC)

Jackson - for JSON Binding

Validation - Hibernate,Validation API

Enbedded Servlet Container - Tomcat

Logging - logback,slf4j

任何經(jīng)典的 Web 應(yīng)用程序都會(huì)使用所有這些依賴項(xiàng)茅信。Spring Boot Starter Web 預(yù)先打包了這些依賴項(xiàng)盾舌。

作為一個(gè)開(kāi)發(fā)者,我不需要再擔(dān)心這些依賴項(xiàng)和它們的兼容版本蘸鲸。


問(wèn)題五:Spring Boot 還提供了其它的哪些 Starter Project Options妖谴?

Spring Boot 也提供了其它的啟動(dòng)器項(xiàng)目包括,包括用于開(kāi)發(fā)特定類(lèi)型應(yīng)用程序的典型依賴項(xiàng)酌摇。

spring-boot-starter-web-services - SOAP Web Services膝舅;

spring-boot-starter-web - Web 和 RESTful 應(yīng)用程序;

spring-boot-starter-test - 單元測(cè)試和集成測(cè)試窑多;

spring-boot-starter-jdbc - 傳統(tǒng)的 JDBC仍稀;

spring-boot-starter-hateoas - 為服務(wù)添加 HATEOAS 功能;

spring-boot-starter-security - 使用 SpringSecurity 進(jìn)行身份驗(yàn)證和授權(quán)埂息;

spring-boot-starter-data-jpa - 帶有 Hibeernate 的 Spring Data JPA技潘;

spring-boot-starter-data-rest - 使用 Spring Data REST 公布簡(jiǎn)單的 REST 服務(wù);


問(wèn)題六:Spring 是如何快速創(chuàng)建產(chǎn)品就緒應(yīng)用程序的千康?

Spring Boot 致力于快速產(chǎn)品就緒應(yīng)用程序享幽。為此,它提供了一些譬如高速緩存吧秕,日志記錄琉闪,監(jiān)控和嵌入式服務(wù)器等開(kāi)箱即用的非功能性特征。

spring-boot-starter-actuator - 使用一些如監(jiān)控和跟蹤應(yīng)用的高級(jí)功能

spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat - 選擇您的特定嵌入式 Servlet 容器

spring-boot-starter-logging - 使用 logback 進(jìn)行日志記錄

spring-boot-starter-cache - 啟用 Spring Framework 的緩存支持

Spring2 和 Spring5 所需要的最低 Java 版本是什么砸彬?

Spring Boot 2.0 需要 Java8 或者更新的版本颠毙。Java6 和 Java7 已經(jīng)不再支持。

推薦閱讀:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M1-Release-Notes


問(wèn)題七#:創(chuàng)建一個(gè) Spring Boot Project 的最簡(jiǎn)單的方法是什么砂碉?

Spring Initializr是啟動(dòng) Spring Boot Projects 的一個(gè)很好的工具蛀蜜。

Spring官網(wǎng)提供的initializer

就像上圖中所展示的一樣,我們需要做一下幾步:

登錄 Spring Initializr增蹭,按照以下方式進(jìn)行選擇:

選擇 com.in28minutes.springboot 為組

選擇 studet-services 為組件

選擇下面的依賴項(xiàng)

Web

Actuator

DevTools

點(diǎn)擊生 GenerateProject

將項(xiàng)目導(dǎo)入 Eclipse滴某。文件 - 導(dǎo)入 - 現(xiàn)有的 Maven 項(xiàng)目


問(wèn)題八:Spring Initializr 是創(chuàng)建 Spring Boot Projects 的唯一方法嗎?

不是的滋迈。

Spring Initiatlizr 讓創(chuàng)建 Spring Boot 項(xiàng)目變的很容易霎奢,但是,你也可以通過(guò)設(shè)置一個(gè) maven 項(xiàng)目并添加正確的依賴項(xiàng)來(lái)開(kāi)始一個(gè)項(xiàng)目饼灿。

在我們的 Spring 課程中幕侠,我們使用兩種方法來(lái)創(chuàng)建項(xiàng)目。

第一種方法是 start.spring.io 碍彭。

另外一種方法是在項(xiàng)目的標(biāo)題為“Basic Web Application”處進(jìn)行手動(dòng)設(shè)置晤硕。

手動(dòng)設(shè)置一個(gè) maven 項(xiàng)目

這里有幾個(gè)重要的步驟:

在 Eclipse 中,使用文件 - 新建 Maven 項(xiàng)目來(lái)創(chuàng)建一個(gè)新項(xiàng)目

添加依賴項(xiàng)庇忌。

添加 maven 插件舞箍。

添加 Spring Boot 應(yīng)用程序類(lèi)。

到這里皆疹,準(zhǔn)備工作已經(jīng)做好疏橄!


問(wèn)題九:為什么我們需要 spring-boot-maven-plugin?

spring-boot-maven-plugin 提供了一些像 jar 一樣打包或者運(yùn)行應(yīng)用程序的命令。

spring-boot:run 運(yùn)行你的 SpringBooty 應(yīng)用程序略就。

spring-boot:repackage 重新打包你的 jar 包或者是 war 包使其可執(zhí)行

spring-boot:start 和 spring-boot:stop 管理 Spring Boot 應(yīng)用程序的生命周期(也可以說(shuō)是為了集成測(cè)試)软族。

spring-boot:build-info 生成執(zhí)行器可以使用的構(gòu)造信息。


問(wèn)題十:如何使用 SpringBoot 自動(dòng)重裝我的應(yīng)用程序残制?

使用 Spring Boot 開(kāi)發(fā)工具立砸。

把 Spring Boot 開(kāi)發(fā)工具添加進(jìn)入你的項(xiàng)目是簡(jiǎn)單的。

把下面的依賴項(xiàng)添加至你的 Spring Boot Project pom.xml 中


Sping boot自動(dòng)加載配置

重啟應(yīng)用程序初茶,然后就可以了颗祝。

同樣的,如果你想自動(dòng)裝載頁(yè)面恼布,有可以看看 FiveReload

http://www.logicbig.com/tutorials/spring-framework/spring-boot/boot-live-reload/.

在我測(cè)試的時(shí)候螺戳,發(fā)現(xiàn)了 LiveReload 漏洞,如果你測(cè)試時(shí)也發(fā)現(xiàn)了折汞,請(qǐng)一定要告訴我們倔幼。


問(wèn)題十一: 什么是嵌入式服務(wù)器?我們?yōu)槭裁匆褂们度胧椒?wù)器呢?

思考一下在你的虛擬機(jī)上部署應(yīng)用程序需要些什么爽待。

第一步: 安裝 Java

第二部: 安裝 Web 或者是應(yīng)用程序的服務(wù)器(Tomat/Wbesphere/Weblogic 等等)

第三部: 部署應(yīng)用程序 war 包

如果我們想簡(jiǎn)化這些步驟损同,應(yīng)該如何做呢翩腐?

讓我們來(lái)思考如何使服務(wù)器成為應(yīng)用程序的一部分?

你只需要一個(gè)安裝了 Java 的虛擬機(jī)膏燃,就可以直接在上面部署應(yīng)用程序了茂卦,

是不是很爽?

這個(gè)想法是嵌入式服務(wù)器的起源组哩。

當(dāng)我們創(chuàng)建一個(gè)可以部署的應(yīng)用程序的時(shí)候等龙,我們將會(huì)把服務(wù)器(例如,tomcat)嵌入到可部署的服務(wù)器中伶贰。

例如蛛砰,對(duì)于一個(gè) Spring Boot 應(yīng)用程序來(lái)說(shuō),你可以生成一個(gè)包含 Embedded Tomcat 的應(yīng)用程序 jar黍衙。你就可以想運(yùn)行正常 Java 應(yīng)用程序一樣來(lái)運(yùn)行 web 應(yīng)用程序了泥畅。

嵌入式服務(wù)器就是我們的可執(zhí)行單元包含服務(wù)器的二進(jìn)制文件(例如,tomcat.jar)们豌。


問(wèn)題十二:如何在 Spring Boot 中添加通用的 JS 代碼涯捻?及其授權(quán)錯(cuò)誤

在源文件夾下,創(chuàng)建一個(gè)名為 static 的文件夾望迎。然后障癌,你可以把你的靜態(tài)的內(nèi)容放在這里面。

例如辩尊,myapp.js 的路徑是 resources/static/js/myapp.js

你可以參考它在 jsp 中的使用方法:

spring boot中添加js代碼

錯(cuò)誤:HAL browser gives me unauthorized error - Full authenticaition is required to access this resource.

該如何來(lái)修復(fù)這個(gè)錯(cuò)誤呢涛浙?


HAL browser gives me unanthorized error

兩種方法:

方法 1:關(guān)閉安全驗(yàn)證

application.properties

management.security.enabled:FALSE

方法二:在日志中搜索密碼并傳遞至請(qǐng)求標(biāo)頭中


問(wèn)題十三:什么是 Spring Data?

來(lái)自://projects.spring.io/spring- data/

Spring Data 的使命是在保證底層數(shù)據(jù)存儲(chǔ)特殊性的前提下摄欲,為數(shù)據(jù)訪問(wèn)提供一個(gè)熟悉的轿亮,一致性的,基于 Spring 的編程模型胸墙。這使得使用數(shù)據(jù)訪問(wèn)技術(shù)我注,關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù),map-reduce 框架以及基于云的數(shù)據(jù)服務(wù)變得很容易迟隅。

為了讓它更簡(jiǎn)單一些但骨,Spring Data 提供了不受底層數(shù)據(jù)源限制的 Abstractions 接口。

下面來(lái)舉一個(gè)例子:

Spring Data例子

你可以定義一簡(jiǎn)單的庫(kù)智袭,用來(lái)插入奔缠,更新,刪除和檢索代辦事項(xiàng)吼野,而不需要編寫(xiě)大量的代碼校哎。


問(wèn)題十四:什么是 Spring Data REST?======需要進(jìn)一步學(xué)習(xí)暫做記錄

Spring Data TEST 可以用來(lái)發(fā)布關(guān)于 Spring 數(shù)據(jù)庫(kù)的 HATEOAS RESTful 資源。

下面是一個(gè)使用 JPA 的例子:

JPA 接口例子

不需要寫(xiě)太多代碼瞳步,我們可以發(fā)布關(guān)于 Spring 數(shù)據(jù)庫(kù)的 RESTful API闷哆。

下面展示的是一些關(guān)于 TEST 服務(wù)器的例子

POST:

URL:http://localhost:8080/todos

Use Header:Content-Type:Type:application/json

Request Content

代碼如下:

image.png

響應(yīng)內(nèi)容:


Spring Data REST的響應(yīng)內(nèi)容

響應(yīng)包含新創(chuàng)建資源的 href腰奋。


問(wèn)題十五:path=”users”, collectionResourceRel=”users” 如何與 Spring Data Rest 一起使用?

path- 這個(gè)資源要導(dǎo)出的路徑段阳准。

collectionResourceRel- 生成指向集合資源的鏈接時(shí)使用的 rel 值氛堕。在生成 HATEOAS 鏈接時(shí)使用馏臭。


問(wèn)題十六:當(dāng) Spring Boot 應(yīng)用程序作為 Java 應(yīng)用程序運(yùn)行時(shí)野蝇,后臺(tái)會(huì)發(fā)生什么?

如果你使用 Eclipse IDE括儒,Eclipse maven 插件確保依賴項(xiàng)或者類(lèi)文件的改變一經(jīng)添加绕沈,就會(huì)被編譯并在目標(biāo)文件中準(zhǔn)備好!在這之后帮寻,就和其它的 Java 應(yīng)用程序一樣了乍狐。

當(dāng)你啟動(dòng) java 應(yīng)用程序的時(shí)候,spring boot 自動(dòng)配置文件就會(huì)魔法般的啟用了固逗。

當(dāng) Spring Boot 應(yīng)用程序檢測(cè)到你正在開(kāi)發(fā)一個(gè) web 應(yīng)用程序的時(shí)候浅蚪,它就會(huì)啟動(dòng) tomcat。

問(wèn)題十七:我們能否在 spring-boot-starter-web 中用 jetty 代替 tomcat烫罩?

在 spring-boot-starter-web 移除現(xiàn)有的依賴項(xiàng)惜傲,并把下面這些添加進(jìn)去。

Sping boot 潛入web容器的更換

問(wèn)題十八:如何使用 Spring Boot 生成一個(gè) WAR 文件贝攒?

推薦閱讀:
https://spring.io/guides/gs/convert-jar-to-war/
下面有 spring 說(shuō)明文檔直接的鏈接地址:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-maven-packaging

Spring boot項(xiàng)目打包及運(yùn)行方式--牽手生活


問(wèn)題十九:如何使用 Spring Boot 部署到不同的服務(wù)器盗誊?

你需要做下面兩個(gè)步驟:

在一個(gè)項(xiàng)目中生成一個(gè) war 文件。

將它部署到你最喜歡的服務(wù)器(websphere 或者 Weblogic 或者 Tomcat and so on)隘弊。

第一步:這本入門(mén)指南應(yīng)該有所幫助:
https://spring.io/guides/gs/convert-jar-to-war/

第二步:取決于你的服務(wù)器哈踱。

如果是在云服務(wù)器如ECS建議使用

nohup java -jar qcl80.jar --server.port=80 &

其他資料:
將Spring boot文件部署到阿里云上

springboot部署到阿里云,配置https梨熙,springboot項(xiàng)目同時(shí)支持http和https請(qǐng)求开镣,阿里云配置https --極力推薦


問(wèn)題二十:RequestMapping 和 GetMapping 的不同之處在哪里?

RequestMapping 具有類(lèi)屬性的咽扇,可以進(jìn)行 GET,POST,PUT 或者其它的注釋中具有的請(qǐng)求方法邪财。

GetMapping 是 GET 請(qǐng)求方法中的一個(gè)特例。它只是 ResquestMapping 的一個(gè)延伸肌割,目的是為了提高清晰度卧蜓。


問(wèn)題二十一:為什么我們不建議在實(shí)際的應(yīng)用程序中使用 Spring Data Rest?

我們認(rèn)為 Spring Data Rest 很適合快速原型制造!在大型應(yīng)用程序中使用需要謹(jǐn)慎把敞。

通過(guò) Spring Data REST 你可以把你的數(shù)據(jù)實(shí)體作為 RESTful 服務(wù)直接發(fā)布弥奸。

當(dāng)你設(shè)計(jì) RESTful 服務(wù)器的時(shí)候,最佳實(shí)踐表明奋早,你的接口應(yīng)該考慮到兩件重要的事情:

你的模型范圍盛霎。

你的客戶赠橙。

通過(guò) With Spring Data REST,你不需要再考慮這兩個(gè)方面愤炸,只需要作為 TEST 服務(wù)發(fā)布實(shí)體期揪。

這就是為什么我們建議使用 Spring Data Rest 在快速原型構(gòu)造上面,或者作為項(xiàng)目的初始解決方法规个。對(duì)于完整演變項(xiàng)目來(lái)說(shuō)凤薛,這并不是一個(gè)好的注意。

其他資料
Spring Data REST 快速構(gòu)建 restful api 應(yīng)用,再也不用擔(dān)心加班了-csdn--優(yōu)秀例子


問(wèn)題二十二:在 Spring Initializer 中诞仓,如何改變一個(gè)項(xiàng)目的包名字缤苫?

好消息是你可以定制它。點(diǎn)擊鏈接“轉(zhuǎn)到完整版本”墅拭。你可以配置你想要修改的包名稱活玲!


問(wèn)題二十三:可以配置 application.propertierde 的完整的屬性列表在哪里可以找到?

這里是完整的指南:

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

其他資料:
SpringBoot配置application.propertierde 的完整的屬性列表--簡(jiǎn)書(shū)--中文說(shuō)明


問(wèn)題二十四:JPA 和 Hibernate 有哪些區(qū)別谍婉?

簡(jiǎn)而言之

JPA 是一個(gè)規(guī)范或者接口

Hibernate 是 JPA 的一個(gè)實(shí)現(xiàn)

當(dāng)我們使用 JPA 的時(shí)候舒憾,我們使用 javax.persistence 包中的注釋和接口時(shí),不需要使用 hibernate 的導(dǎo)入包穗熬。

我們建議使用 JPA 注釋镀迂,因?yàn)槲覀儧](méi)有將其綁定到 Hibernate 作為實(shí)現(xiàn)。后來(lái)(我知道 - 小于百分之一的機(jī)率)死陆,我們可以使用另一種 JPA 實(shí)現(xiàn)招拙。

其他資料
JPA + SpringData 操作數(shù)據(jù)庫(kù)原來(lái)可以這么簡(jiǎn)單 ---- 深入了解 JPA - 1--Eclipse


問(wèn)題二十五:業(yè)務(wù)邊界應(yīng)該從哪一層開(kāi)始?

我們建議在服務(wù)層管理業(yè)務(wù)措译。商業(yè)業(yè)務(wù)邏輯在商業(yè)層或者服務(wù)層别凤,與此同時(shí),你想要執(zhí)行的業(yè)務(wù)管理也在該層领虹。


問(wèn)題二十六:使用 Spring Boot 啟動(dòng)連接到內(nèi)存數(shù)據(jù)庫(kù) H2 的 JPA 應(yīng)用程序需要哪些依賴項(xiàng)规哪?

在 Spring Boot 項(xiàng)目中,當(dāng)你確保下面的依賴項(xiàng)都在類(lèi)路里面的時(shí)候塌衰,你可以加載 H2 控制臺(tái)诉稍。

web 啟動(dòng)器

h2 :內(nèi)存數(shù)據(jù)庫(kù),更多關(guān)于H2數(shù)據(jù)參考:http://www.h2database.com/html/tutorial.html

jpa 數(shù)據(jù)啟動(dòng)器

其它的依賴項(xiàng)在下面:


JPA 和H2內(nèi)存數(shù)據(jù)庫(kù)依賴

需要注意的一些地方:

一個(gè)內(nèi)部數(shù)據(jù)內(nèi)存只在應(yīng)用程序執(zhí)行期間存在最疆。這是學(xué)習(xí)框架的有效方式杯巨。

這不是你希望的真是世界應(yīng)用程序的方式。

在問(wèn)題“如何連接一個(gè)外部數(shù)據(jù)庫(kù)努酸?”中服爷,我們解釋了如何連接一個(gè)你所選擇的數(shù)據(jù)庫(kù)。

其他資料
Spring Data JPA(二):SpringBoot集成H2--csdn


問(wèn)題二十七:如何不通過(guò)任何配置來(lái)選擇 Hibernate 作為 JPA 的默認(rèn)實(shí)現(xiàn)?

因?yàn)?Spring Boot 是自動(dòng)配置的仍源。

下面是我們添加的依賴項(xiàng):

image.png

spring-boot-stater-data-jpa 對(duì)于 Hibernate 和 JPA 有過(guò)渡依賴性心褐。

當(dāng) Spring Boot 在類(lèi)路徑中檢測(cè)到 Hibernate 中,將會(huì)自動(dòng)配置它為默認(rèn)的 JPA 實(shí)現(xiàn)笼踩。


問(wèn)題二十八:指定的數(shù)據(jù)庫(kù)連接信息在哪里逗爹?它是如何知道自動(dòng)連接至 H2 的?

這就是 Spring Boot 自動(dòng)配置的魔力嚎于。

來(lái)自:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-auto-configuration.html

Spring Boot auto-configuration 試圖自動(dòng)配置你已經(jīng)添加的基于 jar 依賴項(xiàng)的 Spring 應(yīng)用程序掘而。比如說(shuō),如果 HSQLDBis 存在你的類(lèi)路徑中匾旭,并且镣屹,數(shù)據(jù)庫(kù)連接 bean 還沒(méi)有手動(dòng)配置圃郊,那么我們可以自動(dòng)配置一個(gè)內(nèi)存數(shù)據(jù)庫(kù)价涝。

進(jìn)一步的閱讀:

http://www.springboottutorial.com/spring-boot-auto-configuration


問(wèn)題二十九:我們?nèi)绾芜B接一個(gè)像 MySQL 或者Orcale 一樣的外部數(shù)據(jù)庫(kù)?

讓我們以 MySQL 為例來(lái)思考這個(gè)問(wèn)題:

第一步 - 把 mysql 連接器的依賴項(xiàng)添加至 pom.xml


mysql依賴

第二步 - 從 pom.xml 中移除 H2 的依賴項(xiàng)

或者至少把它作為測(cè)試的范圍持舆。

刪除H2的依賴

第三步 - 安裝你的 MySQL 數(shù)據(jù)庫(kù)

更多的來(lái)看看這里 -https://github.com/in28minutes/jpa-with-hibernate#installing-and-setting-up-mysql
第四步 - 配置你的 MySQL 數(shù)據(jù)庫(kù)連接

配置 application.properties

spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jdbc:mysql://localhost:3306/todo_examplespring.datasource.username=todouser spring.datasource.password=YOUR_PASSWORD

第五步 - 重新啟動(dòng)色瘩,你就準(zhǔn)備好了!

就是這么簡(jiǎn)單逸寓!


問(wèn)題三十:Spring Boot 配置的默認(rèn) H2 數(shù)據(jù)庫(kù)的名字是什么居兆?為什么默認(rèn)的數(shù)據(jù)庫(kù)名字是 testdb?

在 application.properties 里面竹伸,列出了所有的默認(rèn)值

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

找到下面的屬性

Name of the datasource.
spring.datasource.name=testdb

如果你使用了 H2 內(nèi)部存儲(chǔ)數(shù)據(jù)庫(kù)泥栖,它里面確定了 Spring Boot 用來(lái)安裝你的 H2 數(shù)據(jù)庫(kù)的名字。


問(wèn)題三十一:如果 H2 不在類(lèi)路徑里面勋篓,會(huì)出現(xiàn)上面情況吧享?

將會(huì)報(bào)下面的錯(cuò)誤

Cannot determine embedded database driver class for database type NONE

把 H2 添加至 pom.xml 中,然后重啟你的服務(wù)器


找不到H2數(shù)據(jù)庫(kù)的驅(qū)動(dòng)

問(wèn)題三十二:

你能否舉一個(gè)以 ReadOnly 為事務(wù)管理的例子譬嚣?

當(dāng)你從數(shù)據(jù)庫(kù)讀取內(nèi)容的時(shí)候钢颂,你想把事物中的用戶描述或者是其它描述設(shè)置為只讀模式,以便于 Hebernate 不需要再次檢查實(shí)體的變化拜银。這是非常高效的殊鞭。


問(wèn)題三十三:發(fā)布 Spring Boot 用戶應(yīng)用程序自定義配置的最好方法是什么?

@Value 的問(wèn)題在于尼桶,您可以通過(guò)應(yīng)用程序分配你配置值操灿。更好的操作是采取集中的方法。

你可以使用 @ConfigurationProperties 定義一個(gè)配置組件泵督。

用@ConfigurationProperties定義配置文件

你可以在 application.properties 中配置參數(shù)趾盐。

basic.value: true

basic.message: Dynamic Message

basic.number: 100


問(wèn)題三十四:配置文件的需求是什么?區(qū)分開(kāi)放環(huán)境、測(cè)試環(huán)境谤碳、生成環(huán)境

企業(yè)應(yīng)用程序的開(kāi)發(fā)是復(fù)雜的溃卡,你需要混合的環(huán)境:

Dev

QA

Stage

Production

在每個(gè)環(huán)境中,你想要不同的應(yīng)用程序配置蜒简。

配置文件有助于在不同的環(huán)境中進(jìn)行不同的應(yīng)用程序配置匈仗。

Spring 和 Spring Boot 提供了你可以制定的功能。

不同配置文件中踊兜,不同環(huán)境的配置是什么试浙?

為一個(gè)制定的環(huán)境設(shè)置活動(dòng)的配置文件。

Spring Boot 將會(huì)根據(jù)特定環(huán)境中設(shè)置的活動(dòng)配置文件來(lái)選擇應(yīng)用程序的配置卷仑。

其他資料

Spring Boot配置文件詳解
Spring Boot項(xiàng)目在多環(huán)境(開(kāi)發(fā)峻村、生產(chǎn)或測(cè)試環(huán)境)調(diào)用不同配置文件方式-csdn


問(wèn)題三十五:如何使用配置文件通過(guò) Spring Boot 配置特定環(huán)境的配置?

配置文件不是設(shè)別環(huán)境的關(guān)鍵锡凝。

在下面的例子中粘昨,我們將會(huì)用到兩個(gè)配置文件

dev

prod

缺省的應(yīng)用程序配置在 application.properties 中。讓我們來(lái)看下面的例子:

application.properties

basic.value= true

basic.message= Dynamic Message

basic.number= 100

我們想要為 dev 文件自定義 application.properties 屬性窜锯。我們需要?jiǎng)?chuàng)建一個(gè)名為 application-dev.properties 的文件张肾,并且重寫(xiě)我們想要自定義的屬性。

application-dev.properties

basic.message: Dynamic Message in DEV

一旦你特定配置了配置文件锚扎,你需要在環(huán)境中設(shè)定一個(gè)活動(dòng)的配置文件吞瞪。

有多種方法可以做到這一點(diǎn):

在 VM 參數(shù)中使用 Dspring.profiles.active=prod

在 application.properties 中使用 spring.profiles.active=prod

問(wèn)題三十六:# download a file from Spring boot rest service
@RequestMapping(path = "/download", method = RequestMethod.GET)
public ResponseEntity<Resource> download(String param) throws IOException {

// ...

InputStreamResource resource = new InputStreamResource(new FileInputStream(file));

return ResponseEntity.ok()
        .headers(headers)
        .contentLength(file.length())
        .contentType(MediaType.parseMediaType("application/octet-stream"))
        .body(resource);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市驾孔,隨后出現(xiàn)的幾起案子芍秆,更是在濱河造成了極大的恐慌,老刑警劉巖翠勉,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妖啥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡眉菱,警方通過(guò)查閱死者的電腦和手機(jī)迹栓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俭缓,“玉大人克伊,你說(shuō)我怎么就攤上這事』梗” “怎么了愿吹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)惜姐。 經(jīng)常有香客問(wèn)我犁跪,道長(zhǎng)椿息,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任坷衍,我火速辦了婚禮寝优,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘枫耳。我一直安慰自己乏矾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布迁杨。 她就那樣靜靜地躺著钻心,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铅协。 梳的紋絲不亂的頭發(fā)上捷沸,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音狐史,去河邊找鬼痒给。 笑死,一個(gè)胖子當(dāng)著我的面吹牛预皇,可吹牛的內(nèi)容都是我干的侈玄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吟温,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了突颊?” 一聲冷哼從身側(cè)響起鲁豪,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎律秃,沒(méi)想到半個(gè)月后爬橡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棒动,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年糙申,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片船惨。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡柜裸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出粱锐,到底是詐尸還是另有隱情疙挺,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布怜浅,位于F島的核電站铐然,受9級(jí)特大地震影響蔬崩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜搀暑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一沥阳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧自点,春花似錦沪袭、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至埠啃,卻和暖如春死宣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背碴开。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工毅该, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人潦牛。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓眶掌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親巴碗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子朴爬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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

  • 文/星辰微光 二十年前 我們隔著萬(wàn)水千山。 你在北方為高考落榜而難過(guò)橡淆,為開(kāi)始復(fù)讀而心存感激召噩。 我在南方為小升初而激...
    星辰微光閱讀 383評(píng)論 1 13
  • 如果不知遠(yuǎn)方的路通向哪里,那么請(qǐng)聽(tīng)從心靈的選擇逸爵,坦途或荊棘具滴,都是一種精彩。
    2017然閱讀 128評(píng)論 0 0
  • 媽媽啊,我的老媽媽趋艘。自從我爸爸走的那天起疲恢,你已經(jīng)是我們這些做兒女心中的牽掛。 每次回家看你一個(gè)人孤零零的坐在沙發(fā)上...
    愛(ài)睡覺(jué)的寶寶閱讀 494評(píng)論 2 12
  • 自學(xué)石頭畫(huà)快20天了,積累了一大堆我心中自認(rèn)為的得意之作抖单,成就感滿滿的萎攒。 前些天遇八,一位在北京當(dāng)記者的朋友看我在朋友...
    小崔喵喵噠石頭畫(huà)閱讀 2,208評(píng)論 22 41
  • 總是不到最后一刻, 也不著急耍休。 旁人都在催促刃永, 自己心里的小人兒, 也在焦急羊精。 可身體斯够, 就是不聽(tīng)指揮, 動(dòng)不起來(lái)...
    簡(jiǎn)安茹閱讀 258評(píng)論 0 6