springboot基礎(chǔ)文檔_第1頁(yè)
springboot基礎(chǔ)文檔_第2頁(yè)
springboot基礎(chǔ)文檔_第3頁(yè)
springboot基礎(chǔ)文檔_第4頁(yè)
springboot基礎(chǔ)文檔_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、在IDEA環(huán)境下創(chuàng)建一個(gè) Spring boot程序一、點(diǎn)擊New Project后,選擇Spring Initializr。如下圖所示,此時(shí),如果右側(cè)你的JDK自動(dòng)出現(xiàn)了,那可以省很多事。如果沒有自動(dòng)出現(xiàn),貝V 需要你點(diǎn)擊New,去選擇你JAVA的安裝目錄。(為什么需要這樣因?yàn)?Spring的運(yùn)行需要JAVA所以IDE需要知道你的JAVA安裝目錄。)二、進(jìn)入下一步后,會(huì)讓你設(shè)置一下你工程的名字等基本信息。Name:demoType:Packaging:Java Version:Language:Croup:Artifact:Version:Descripti on:Package:Maven

2、 Project (Generate a Mavencom.exampledemoO.O.l-SNAPSHOTDemo project for Spring Bootcom.example三、然后這個(gè)界面比較重要,它的作用是在開始的時(shí)候,自動(dòng)下載一些 jar包。你勾選一個(gè),他就會(huì)自動(dòng)下載。請(qǐng)按照需求勾選。Spring Boot Version:1.3.3Dependencies CoreSecurityCacheRetrySJ AOPDevToolsT Lombok WebE WebRat packWebsockeVaadinRest Repositories HAL Browser Mobi

3、le Template Engines Freemarker MustacheVelocity SQLRf JPAHSQLDBy jooqApache De NoSQLMongoDCassandra四、填寫工程名田 Ndw ProjectProject name:demoProject location: !prejectdemo* More Settin-gsPrevi五、OK,現(xiàn)在Intellij就自動(dòng)為我們創(chuàng)建好一個(gè) Springboot的程序了哦如下圖所示:Spring boot 寫一個(gè) Hello world現(xiàn)在開始寫第一個(gè)Hello World-看下圖:Qblog -/ldeaPr

4、ojects/blog tl-idea tl .mvn D src D main Bjava B com.exam pie色街 DemoApplication Ce re sourcesB staticB templatesapplicati on .properties QtestD blogJmlmvnw mvnwxmdtn pom,xmlHh External Libraries上圖中的是一個(gè)包名,為了代碼可讀性高,我們會(huì)使用MVC的開發(fā)模式,在這個(gè)包下面,再新建幾個(gè)包,分別用來寫不同的代碼。需要新建 的包如下:1. controller包:用來寫控制器代碼,控制器對(duì)應(yīng)不同的請(qǐng)求,是網(wǎng)

5、絡(luò)請(qǐng)求的第一層。2. model包:里面每個(gè)class可以對(duì)應(yīng)一個(gè)數(shù)據(jù)表,當(dāng)你寫好class,并且運(yùn)行工程時(shí),Springboot和Hibernate會(huì)自動(dòng)為你在數(shù)據(jù)庫(kù)里創(chuàng)建 表。3. repository包:這里封裝了所有對(duì)數(shù)據(jù)表的增刪改查操作。以后你 需要操作數(shù)據(jù)庫(kù),其實(shí)就是使用這里的接口。4. service包:比如把登錄、注冊(cè)等一個(gè)完整的邏輯,封裝為一個(gè) service,供controller調(diào)用,可以極大地簡(jiǎn)化開發(fā),同時(shí)代碼也具有更 高的可讀性。下面,讓我們來建立這四個(gè)包吧 在這個(gè)包上右鍵,然后new 個(gè)包出來。如圖所示:我這里創(chuàng)建好包名后,目錄結(jié)構(gòu)是這樣的:rojec 口blog

6、-/IdeaProjects/blog .ideamvn src口 main 口 java E com.exampleE con trollerR modelI3 repository 直service 総宙 DemoApplication resourcesQ staticEl templatesapplicati on .properties Dtestblog.imlmvnw mvnw.cmdHI pom.xml Uli External Libraries好了,到這一步,我們終于可以開始寫代碼啦在本文里,我們將不會(huì)用至U service、model、repository,只會(huì)用到 co

7、ntroller 來寫一個(gè)簡(jiǎn)單 的Hello World。讓我們開始寫吧:首先,在controller這個(gè)包上點(diǎn)擊右鍵,新建一個(gè)class,名字就叫nana, 如下圖所示:所以這個(gè)代碼復(fù)嚴(yán)格按照前面的教程來,你的包名可能和我的不一樣,制過去后,請(qǐng)自己檢查一遍!】package * Created by Ion gge93 on 16/4/14.*/RestCo ntrollerEn ableAutoC on figurati onpublic class nana RequestMappi ng(value=/,method =public String in dex()return Hell

8、o World;然后我們來運(yùn)行以下我們的工程,運(yùn)行方法如下圖所示:寫代碼的過程都是不順利的雖然我們點(diǎn)了運(yùn)行,但是下面的控制臺(tái)里卻提示我們運(yùn)行失敗了,從上圖的下面看出,是hibernate出錯(cuò)了。為什么呢因?yàn)槲覀冊(cè)?Maven里包含了 MySQL的jar包,但是卻沒有配置 數(shù)據(jù)庫(kù)連接需要的賬號(hào)和密碼等信息。所以hibernate會(huì)報(bào)錯(cuò)因?yàn)槲覀冞@篇文章里,只是為了輸出 hello world,用不著數(shù)據(jù)庫(kù)。所以我們先 去pom文件里注釋掉數(shù)據(jù)庫(kù)相關(guān)的jar包應(yīng)該就OK了。我注釋完后, 我的pom文件是這樣的,請(qǐng)仔細(xì)檢查:vproject xmln s= xmln s:xsi=xsi:schemaL

9、ocati on=vmodelVers ion demo vpackagi ngjardemoDemo project for Spring Bootvpare ntspri ng-boot-starter-pare ntvvers ion v/pare ntv vdepe nden ciesvdependencyspr in g-boot-starter-aop!-!- !-spri ng-boot-starter-data-jpa-!-!-!- !-spri ng-boot-starter-jdbc-!-!-!- !-spri ng-boot-starter-redis-!-spr in

10、g-sessi onspr in g-boot-starter-thymeleaf spri ng-boot-starter-web!-v!-vgroupldmysql-!-mysql-conn ector-java-!-ru ntime-!- spri ng-boot-starter-testtestv/dependencyv/depe nden ciesvplugi ns vplug inspri ng-boot-mave n-plugi n v/plug in v/plugi ns 此時(shí), 依然報(bào)錯(cuò): Cannot determine embedded database driver c

11、lass for databasetype NONE解決辦法:注釋掉pom文件中jap和session,在完成以后,pom配置如下vmodelVers ion demo vpackagi ngjardemov/namevdescripti on Demo project for Spring Bootv/descripti onvpare ntvgroupldvartifactldspri ng-boot-starter-pare ntv/artifactldvvers ion v/pare ntvvspri ng-boot-starter-aopv/dependencyvgroupldvar

12、tifactldspri ng-boot-starter-webv/artifactldv/dependencyvdependencyvgroupldvartifactldspri ng-boot-starter-testv/artifactldvscopetestv/scopev/dependencyvdependencyvgroupldvartifactldspri ng-boot-starter-thymeleafv/artifactldv/dependencyv/depe nden ciesvbuildvplugi nsvplug invgroupldvartifactldspri n

13、g-boot-mave n-plugi nv/artifactldv/plug inv/plugi nsv/buildv/project然后我們?cè)冱c(diǎn)擊那個(gè)三角形運(yùn)行,你會(huì)發(fā)現(xiàn)運(yùn)行成功啦如下圖所示:來后,其實(shí)就相當(dāng)于跑起來一個(gè)網(wǎng)站。 現(xiàn)在讓我們?nèi)ゾW(wǎng)頁(yè)里看看我們的Hello World有沒有正常工作吧在瀏覽器里,打開,你會(huì)發(fā)現(xiàn)輸出了Hello World來源:boot在Spring mvc下接入微信在我們搭建好Spring boot環(huán)境后,可以很容易的使用 Spring mvc不需要復(fù)雜的 配置,只需要做一些基本的注解就行了。這一章講述如何在Spring mvc下去接入微信。一、接入微信需要一個(gè)公

14、網(wǎng)IP,這里我們使用的是ngrock內(nèi)網(wǎng)穿透工具。運(yùn)行_-cmd,進(jìn)入ngrock解壓目錄,輸入命令 ngrok -subdoma inxpe ng -con fig= 80曲其中yxpeng是可以自己配置的子域名,8080端口通常設(shè)置為你的項(xiàng)目運(yùn)行 的端口,因?yàn)槲疫@邊默認(rèn)的是 8080,所以我設(shè)置成了 8080.IBM 匸入亦ndcw曲甘|_ o 丨曰(Ctr-L-i-C to quitTumn 1 七日七uson丄耳爭(zhēng)Uersian1.7/1.7Faruaidinglittp:/SPxpeng.hnatii.con -127.0.B.l:BmForwarding.lirbo/tn Gam

15、一:8080Ueb Interface:4040tt Conn6Avg Conn Time5666124nsITTP RequestsGET Zwec hat/chec kzyxp260GET /uec ht/c hec k/yxp206GET Zuechat/clieck/yxp2BUGET z20SGET /fauicon.ico20BGET /200GET /wed hate hec k/yiip2BBget請(qǐng)求傳過來的二、與用servlet接入微信一樣的,我們需要接受到微信后臺(tái)通過 幾個(gè)參數(shù)。首先,寫了一個(gè) model,其中封裝了這四個(gè)參數(shù)。pack

16、age/*微信接入校驗(yàn)信息model* Created by Admi nistrator o n 2016/11/8 0008.*/public classCheckModel private String sig nature;private Long timestamp;private Long nonce;private String echostr;public String getSig nature。return sig nature;public void setSig nature(Stri ng sig nature) =sig nature;public Long get

17、Timestamp() return timestamp;public void setTimestamp(L ong timestamp) =timestamp;public Long getN once() retur n nonce;public void setN on ce(L ong nonce) =nonce;創(chuàng)建一個(gè)controller類,其中添加一個(gè) validate方法,用來接收這個(gè) model并進(jìn)行處理在tokenService中,分離出這四個(gè)參數(shù),然后對(duì) token,timestamp禾口 nonce這三 個(gè)參數(shù)進(jìn)行字典排序,然后進(jìn)行 SHA1加密,將密文與sig na

18、ture對(duì)比,如果相同就 返回 echostr.packageimportimportimport import import* Created by Admi nistrator o n 2016/11/8 0008.*/Service public classToke nServiCe *微信接入數(shù)據(jù)驗(yàn)證* param wxToke n* param toke nM odel* return*/Tra nsact ionalpublic String validate(Stri ng wxToken, CheckModel toke nM odel) String sig nature =

19、()Long timestamp =();Long nonce =()String echostr =();if(signature匸null×tamp!二 null&nonce匸null) Stri ng str = wxToke n, timestamp+, non ce+; (str); oLowerCase()這種查詢可以聲明在Repository方法中,擺脫像命名查詢那樣的約束,將查詢直接在相應(yīng)的V)基本配晉/墳寫服務(wù)器欝苣請(qǐng)?zhí)顚懡涌谂湫畔此信息需要悔擁荷目己的服務(wù)器冏淳* 埴寫的URL需要正確響應(yīng)撤信發(fā)送的TokenfeuE f請(qǐng)閱S淤入指南.URLhttp:/yxp

20、eng.h mdtmom/wec ha t/check/yxp必須以http:或http/幵頭,分別支持呂0昴ZI未D442揣口Tokenyxp必殖為英文彌字”說度為432字符.ft么是TolEn ?EncodlngAESKey消方弍L5FO6cvJrVG4F7PFQ0ruQjjpdy6ZQxGVxnLTIJn9p 43 /43 消息加密密鑰由婦位字符殂成f可慶機(jī)修改*字符?S圍為A立f a-z 什么是EncodingAESKey ?請(qǐng)根16業(yè)髯需要選捧胃息加灣類型啟用后將立即生效 明文檯式明文摸式下,孑滾用消息閑jtrfi犧功能,安全系數(shù)較低謙容檯弍+ = :username).NamedQ

21、uery( name = getUsernamePasswordToke n,query = select new from User u where u. + = :user name)(2 )在in terface中定義與對(duì)應(yīng)的方法public in terface UserRepository exte nds JpaRepositoryUser, LongList fin dByLast name(Stri ng last name);User findByEmailAddress(String emailAddress);使用Query自定義查詢(Spring Data提供的)隨機(jī)主

22、成0-9.接口方法中聲明,結(jié)構(gòu)更為清晰,這是Spring data的特有實(shí)現(xiàn)。例如:public in terface UserRepository exte nds JpaRepositoryUser, LongQuery(select u from User u where = 1)|User findByEmailAddress(String emailAddress);Query與Modifying執(zhí)行更新操作這兩個(gè)annotation 起聲明,可定義個(gè)性化更新操作,例如只涉及某些字段更新時(shí)最為常用,示例如下:Modifyi ngQuery(update User u set = 1

23、where = 2)int setFixedFirst nameFor(Stri ng first name, Stri ng last name);索引參數(shù)與命名參數(shù)(1)索引參數(shù)如下所示,索引值從1開始,查詢中X個(gè)數(shù)需要與方法疋義的參數(shù)個(gè)數(shù)相一致,并且順序也要一致Modifyi ngQuery(update User u set = 1 where = 2)int setFixedFirst nameFor(Stri ng first name, Stri ng last name);(2 )命名參數(shù)(推薦使用這種方式)可以定義好參數(shù)名,賦值時(shí)采用Param(參數(shù)名),而不用管順序。如下所示:public in terface UserRepository exte nds JpaRepositoryTra nsact ion al(read Only = true)public class SimpleJpaRepository impleme nts JpaRepository,Tra nsact ionalpublic void delete(ID id) delete ndO ne(id); 對(duì)于自定義的方法,如需改變spring data提供的事務(wù)默

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論