spring boot(一)创建项目
網(wǎng)上有很多springboot的入門教程,自己也因?yàn)轫?xiàng)目要使用springboot,所以利用業(yè)余時(shí)間自學(xué)了下springboot和springcloud,使用下來(lái)發(fā)現(xiàn)springboot還是挺簡(jiǎn)單的,體現(xiàn)了極簡(jiǎn)的編程風(fēng)格,大部分通用都是通過(guò)注解就可以完成,下面就來(lái)詳細(xì)講解下如何使用springboot來(lái)開發(fā)一個(gè)簡(jiǎn)單的restful api網(wǎng)關(guān)功能,可以提供給H5或者android、ios進(jìn)行接口開發(fā),還是很方便的。
1. 使用spring initialization創(chuàng)建SpringBoot項(xiàng)目
有很多方法可以快速創(chuàng)建Springboot項(xiàng)目,可以通過(guò)idea的springboot initialization來(lái)創(chuàng)建,也可以通過(guò)手工新建一個(gè)maven工程,然后引入springboot的dependency來(lái)完成sprignboot的工程導(dǎo)入,還可以通過(guò)spring官網(wǎng)的來(lái)創(chuàng)建springboot項(xiàng)目,因?yàn)橛行┩瑢W(xué)可能沒裝idea,這里就通過(guò)官網(wǎng)的工程初始化指引來(lái)創(chuàng)建一個(gè)springboot空工程。
網(wǎng)址?https://start.spring.io? ?打開網(wǎng)址可以看到下圖
在serch for dependency輸入web,即可完成基本的restful接口網(wǎng)關(guān)的功能,如果要JPA或者oauth安全相關(guān)的組件,可以增加rest repository、spring security等相關(guān)組件依賴庫(kù),spring提供的配套組件還是很多的,基本涵蓋了所有應(yīng)用場(chǎng)合。
加入web組件后,點(diǎn)擊下方的綠色按鈕Generate Project即可創(chuàng)建一個(gè)springboot工程,并且自動(dòng)下載到本地,接下來(lái)直接在idea打開該工程就可以了,在創(chuàng)建的時(shí)候可以選擇Maven工程或者Gradle工程,這里我們使用了比較熟悉的Maven工程。
2. 工程結(jié)構(gòu)
在idea中打開工程 ,目錄結(jié)構(gòu)入下圖:
?
?可以看到工程中有maven的pom文件,也自動(dòng)創(chuàng)建了SpringbootStartApplication.java該類為springboot的啟動(dòng)類,待會(huì)兒我們一起看下這個(gè)類,先看下maven的pom文件有哪些。這里主要是依賴了springboot的1.4.7版本,目前最新已經(jīng)更新到1.5.6了,這里沒有用最新版本,還是不當(dāng)小白鼠了,在dependency中依賴了spring-boot-starter-web還有個(gè)test測(cè)試的組件,如果不寫測(cè)試代碼,可以不使用該test組件,最后還加入了支持springboot的maven plugin組件。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.demo</groupId><artifactId>pollydemo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>pollydemo</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build> </project>?
?剛看完了pom文件,在導(dǎo)入工程的時(shí)候,ide一般會(huì)自動(dòng)導(dǎo)入依賴庫(kù),在國(guó)內(nèi)訪問(wèn)maven的依賴庫(kù)速度感人,建議使用阿里云的maven鏡像服務(wù)器,或者使用公司的maven私服,如果公司沒有私服或者自己學(xué)習(xí)可以直接使用阿里云的鏡像速度還是不錯(cuò)的,maven setting.xml中需要添加mirror地址,具體如何配置這里就不詳細(xì)描述了,可以自行百度,這里也順便附上阿里云maven地址:
<mirror><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> ?配置好了pom后,我們一起看下自動(dòng)生成的Application.java這個(gè)類相當(dāng)于我們程序的main函數(shù)入口,這里再順便介紹下因?yàn)閟pringboot集成了Tomcat和Jetty,默認(rèn)使用Tomcat作為應(yīng)用容器,開發(fā)者只需要將工程打成jar包直接丟到服務(wù)器上就可以執(zhí)行了,不需要再單獨(dú)部署到was、jboss、tomcat這些應(yīng)用服務(wù)器上。
SpringBootStartApplication.java
所有的springboot application啟動(dòng)類都需要在類級(jí)別上加上@SpringBootApplication注解,其他參數(shù)不用任何調(diào)整,后續(xù)可以把一些初始化的動(dòng)作放到該類中進(jìn)行,目前本例中就不加其他的啟動(dòng)加載項(xiàng)了。
這樣一個(gè)api網(wǎng)關(guān)的架子就搭好了,是不是很簡(jiǎn)單!下面我們就可以將主要精力聚焦在業(yè)務(wù)邏輯代碼上了,這里為了簡(jiǎn)化程序,不會(huì)將項(xiàng)目進(jìn)行深入的分層設(shè)計(jì),在實(shí)際項(xiàng)目中,一般都會(huì)對(duì)項(xiàng)目進(jìn)行分層設(shè)計(jì),如果是api網(wǎng)關(guān),沒有view層但是起碼也會(huì)有對(duì)外接入decontroller層、處理業(yè)務(wù)邏輯的service層、處理數(shù)據(jù)持久化的dao層,同時(shí)也會(huì)有一些POJO業(yè)務(wù)實(shí)體類,這里就不詳細(xì)展開了,后續(xù)也會(huì)對(duì)互聯(lián)網(wǎng)架構(gòu)設(shè)計(jì)進(jìn)行詳細(xì)講述,這里我們只創(chuàng)建了一個(gè)UserController類,里面只有獲取用戶信息的方法,分別根據(jù)參數(shù)和請(qǐng)求方式的不同用三種方法進(jìn)行了重寫,下面就來(lái)一一道來(lái)。
先來(lái)講述下最簡(jiǎn)單的使用get請(qǐng)求用戶信息的實(shí)現(xiàn)方式,代碼如下,寫好后直接在Application類點(diǎn)擊右鍵有個(gè)RunAs,點(diǎn)擊后會(huì)自動(dòng)運(yùn)行,運(yùn)行成功后可以使用http發(fā)包工具進(jìn)行測(cè)試,這里推薦使用chrome的postman或者使用firefox的httprequester插件,都是比較簡(jiǎn)單的發(fā)包工具,get請(qǐng)求的上送為http://localhost:8081/springboot/getUserByGet?userName=feiweiwei
/*** 用戶
* <p>
* 1.
* </p>
*
* @author pollyLuo
* @version 1.0.0
* @date 2018-09-11
*/
@RestController
@RequestMapping(value = "/user/")
public class UserController {
@ResponseBody
@RequestMapping(value = "getUser", method = RequestMethod.GET)
public String getUser(@RequestParam(value = "userName") String userName) {
return "hello:" + userName;
}
}
指定端口與項(xiàng)目名稱,修改配置文件 (application.properties)
server.port=8090 server.servlet.context-path=/polly-demoSpring Boot 更換 Banner
我們先來(lái)回顧一下在 Spring Boot 1.0 中如何更換啟動(dòng) Banner,其實(shí)都很簡(jiǎn)單,只需要在src/main/resources路徑下新建一個(gè)banner.txt文件,banner.txt中填寫好需要打印的字符串內(nèi)容即可。
一般情況下,我們會(huì)借助第三方工具幫忙轉(zhuǎn)化內(nèi)容,如網(wǎng)站http://www.network-science.de/ascii/將文字轉(zhuǎn)化成字符串,網(wǎng)站:http://www.degraeve.com/img2txt.php可以將圖片轉(zhuǎn)化成字符串。
?
?
轉(zhuǎn)載于:https://blog.csdn.net/liutong123987/article/details/79385513
?
轉(zhuǎn)載于:https://www.cnblogs.com/PollyLuo/p/9629382.html
總結(jié)
以上是生活随笔為你收集整理的spring boot(一)创建项目的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 设计模式之:适配器模式
- 下一篇: Docker从入门到实践