Spring Boot入門

1.配置開(kāi)發(fā)環(huán)境

  • 安裝jdk(需要1.8及以上版本),可以從java的官網(wǎng)http://www.oracle.com/technetwork/java/javase/downloads/index.html下載安裝包
  • 安裝完成后洒沦,配置環(huán)境變量豹绪;加入到系統(tǒng)的環(huán)境path中。完成后申眼,打開(kāi)一個(gè)命令行窗口瞒津;輸入命令
    java -version,若能正確輸出版本號(hào);說(shuō)明安裝成功括尸。版本信息如下
image.png
  1. 安裝IntelliJ IDEA
  • IDEA需要14.0以上的版本巷蚪,可以從官網(wǎng) http://www.jetbrains.com/下載免費(fèi)版,IDEA已經(jīng)包含Maven插件濒翻。
  1. 安裝Apache Maven
  • 為了能在命令行窗口中使用Maven來(lái)管理工程钓辆,可以安裝一個(gè)Maven管理工具。Maven官網(wǎng)地址http://maven.apache.org/download.cgi 下載3.0.5以上的版本肴焊,下載完后解壓縮即可。然后將Maven的安裝路徑也加入到Windows的環(huán)境變量中功戚。安裝完成后在命令行執(zhí)行指令: mvn -v將輸出如下信息娶眷。
image.png

建議更改IDEA中Maven資源庫(kù)的存放路徑,可以先在Maven安裝路徑中創(chuàng)建一個(gè)資源庫(kù)目錄啸臀,如repository届宠。然后打開(kāi)Maven的配置文件烁落,既安裝目錄conf中的setting.xml ,找到如下代碼豌注,將路徑更改為repository所在的位置伤塌。

找到下列代碼:
<localRepository>/path/to/local/repo</localRepository>
復(fù)制出來(lái)改為如下所示:
<localRepository>D:\maven_repertory</localRepository>

改好后可以拷貝一份setting.xml 放置在${user.home}/.m2/下面,這樣做可以不用修改IDEA的Maven這個(gè)配置轧铁。如圖所示Maven的配置界面中每聪,User Settings File保持了默認(rèn)配置,而Local Repository 使用了上面設(shè)置的路徑D:\maven_repertory齿风,而Maven程序還是使用了IDEA自帶的版本药薯。

  1. 安裝Git客戶端
    在GitHub中免費(fèi)注冊(cè)一個(gè)用戶(可以通過(guò)E-mail直接注冊(cè)免費(fèi)用戶),以方面在IDEA中從GitHub檢出實(shí)例工程救斑。GitHub是世界級(jí)的代碼庫(kù)服務(wù)器童本,如圖是GitHub的首頁(yè)。
image.png

IDEA還需要Git客戶端程序的支持脸候∏钣椋可以從官網(wǎng)https://git-scm.com/download/ 下載Git客戶端安裝包。安裝非常簡(jiǎn)單运沦,按提示單擊“下一步”并選擇好安裝路徑即可泵额。安裝完成后,在windows的資源管理器中茶袒,單擊鼠標(biāo)右鍵彈出的菜單中將會(huì)多出如下幾個(gè)選擇菜單梯刚。
Git Init Here
Git Gui
Git Bash
其中Git Bash是一個(gè)帶有UNIX指令的命令行窗口,在這里可以執(zhí)行一些Git指令薪寓,用來(lái)提交或者檢出項(xiàng)目亡资。
在IDEA中對(duì)Git 的設(shè)置,只要指定git.exe執(zhí)行文件的位置即可向叉。IDEA中Git客戶端的配置锥腻。如圖

image.png

如果已經(jīng)在GitHub中注冊(cè)了用戶,打開(kāi)如圖GitHub的配置母谎,輸入用戶名和密碼瘦黑,然后單擊Test,如果設(shè)置正確的話將返回連接成功的提示。

image.png
  1. 創(chuàng)建項(xiàng)目工程

現(xiàn)在可以嘗試使用IDEA來(lái)創(chuàng)建一個(gè)項(xiàng)目工程奇唤。如果是第一次打開(kāi)IDEA幸斥,可以選擇 Create New Project 。如果已經(jīng)打開(kāi)了IDEA咬扇,在file菜單中選擇New Project也能打開(kāi)New Project對(duì)話框甲葬,使用Maven和Spring Initializr這兩種方法來(lái)創(chuàng)建一個(gè)新項(xiàng)目。

  • 使用Maven新建項(xiàng)目
image.png

在上圖中的Project SDK下拉列表中選擇前面安裝的java 1.8懈贺,如果下拉列表中不存在java 1.8 可以單擊new 按鈕经窖,找到安裝java的位置坡垫,選擇他。然后在側(cè)邊欄的項(xiàng)目類型中画侣,選擇Maven項(xiàng)目冰悠,即可使用Maven作為項(xiàng)目的管理工具。至于Maven中的archetype,因?yàn)槲覀儾⒉淮蛩闶褂闷渲腥魏我环N類型配乱,所以不用勾選溉卓。然后下一步:

  • 輸入GroupId和ArtifactId
    在GroupId輸入框中輸入“springboot.example” 在ArtifactId輸入框中輸入“spring-boot-hello”,version輸入框中保持默認(rèn)值。如圖
image.png
  • 指定項(xiàng)目名稱和存放路徑
    在Project location編輯框中選擇和更改存放路徑宪卿,在Project name輸入框中輸入與ArtifactId相同的項(xiàng)目名稱的诵,如圖:
image.png

單擊Finish,完成項(xiàng)目創(chuàng)建佑钾,這樣將在當(dāng)前窗口中打開(kāi)一個(gè)新項(xiàng)目西疤。其中在工程目錄中生成了一個(gè)pom.xml文件,既Maven的項(xiàng)目對(duì)象模型(Project Object Model )并生成了源代碼目錄java休溶、資源目錄resource和測(cè)試目錄test等代赁,既生成了一個(gè)項(xiàng)目的一些初始配置和目錄結(jié)構(gòu)。

image.png

使用Spring Initializr新建項(xiàng)目
新建一個(gè)Spring Boot項(xiàng)目兽掰,也可以使用Spring Initializr的方式芭碍,這種方式很簡(jiǎn)單,如圖

image.png

注意Initializr Service URLhttps://start.spring.io/ 孽尽,這將會(huì)連接網(wǎng)絡(luò)窖壕,以查詢Spring Boot的當(dāng)前可用版本和組建列表。使用這種方式新建項(xiàng)目的三個(gè)步驟:

  1. 選擇類型:注意Type為Maven Project ,java Version 為 1.8杉女,Packing為jar瞻讽,如圖所示
image.png
  1. 選擇Spring Boot版本和組件:例如,在Spring Boot Version 中選擇1.5.12熏挎,并勾選web項(xiàng)目組件速勇。
image.png
  1. 輸入項(xiàng)目名稱,這里使用demo作為項(xiàng)目的名稱坎拐。
image.png

單擊finish烦磁,將創(chuàng)建一個(gè)初始化項(xiàng)目如圖;這個(gè)項(xiàng)目不但有完整的目錄結(jié)構(gòu)哼勇,還有一個(gè)完整的Maven配置都伪,并且生成了一個(gè)默認(rèn) 的主程序,幾乎所有的準(zhǔn)備工作已經(jīng)就緒积担,并且可以立即運(yùn)行起來(lái)(雖然沒(méi)有提供任何可用的服務(wù))這也是Spring Boot引以為傲的地方陨晶,既創(chuàng)建一個(gè)應(yīng)用不用編寫(xiě)任何代碼。只管運(yùn)行即可磅轻。

image.png
  1. 使用Spring Boot
    任何應(yīng)用的開(kāi)發(fā)都需要對(duì)項(xiàng)目創(chuàng)建珍逸,運(yùn)行和發(fā)布等進(jìn)行管理。使用Spring Boot框架進(jìn)行開(kāi)發(fā)聋溜,可以選擇使用Maven 和Gradle等項(xiàng)目管理工具谆膳。我們使用Maven。
  • Maven依賴管理
    使用Maven撮躁,通過(guò)導(dǎo)入Spring Boot的starter模塊漱病,可以將許多程序依賴包自動(dòng)導(dǎo)入工程中,使用Maven的POM把曼,還可以更容易的管理依賴的版本和使用默認(rèn)的配置杨帽,工程中的模塊也可以很方便的繼承它。例如:修改pom.xml文件嗤军,基本上就能為一個(gè)Spring Boot開(kāi)發(fā)框架web項(xiàng)目開(kāi)發(fā)提供所需要的依賴注盈。

          <?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>springboot.example</groupId>
       <artifactId>spring-boot-hello</artifactId>
       <version>1.0-SNAPSHOT</version>
    
    
     <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.12.BUILD-SNAPSHOT</version>
      <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    
     <dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
    
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
      </dependency>
    </dependencies>
    </project>
    

這里使用了一個(gè)依賴配置spring-boot-starter-web和一個(gè)parent配置spring-boot-starter-parent ,在工程的外部庫(kù)列表中叙赚,Spring Boot已經(jīng)導(dǎo)入了整個(gè)springframework依賴老客,以及autoconfigure、logging震叮、slf4j胧砰、jackson、tomcat插件等苇瓣,所有這些都是一個(gè)web項(xiàng)目可能需要用到的東西尉间。

  1. 一個(gè)簡(jiǎn)單的實(shí)例

Spring Boot的官方文檔中提供了一個(gè)最簡(jiǎn)單的web實(shí)例程序。
核心代碼如下:

   package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

@RequestMapping
String home(){
    return "hello";
}

public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
    }
}

這個(gè)簡(jiǎn)單實(shí)例击罪,首先是一個(gè)Spring Boot應(yīng)用的程序入口哲嘲,或者叫做主程序,其中使用了一個(gè)注解@SpringBootApplication 來(lái)標(biāo)注它是一個(gè)Spring Boot應(yīng)用外邓,main方法撤蚊,使他成為一個(gè)主程序,將在應(yīng)用啟動(dòng)時(shí)首先被執(zhí)行损话。其次侦啸,注解@RestController同時(shí)標(biāo)注這個(gè)程序還是一個(gè)控制器。如果在瀏覽器中訪問(wèn)應(yīng)用的根目錄丧枪,他將調(diào)用home方法光涂,并輸出字符串:hello。

在IDEA環(huán)境中運(yùn)行拧烦。
在IDEA中打開(kāi)Run菜單忘闻,選擇Edit Configuration打開(kāi)Run/Debug configurations 對(duì)話框,在配置界面的左邊側(cè)邊欄中選擇添加一個(gè)Application或Spring Boot配置項(xiàng)目恋博,然后在工作目錄中選擇工程所在的根目錄齐佳,主程序代碼springboot.example.Application私恬,并將配置保存為hello。如圖

image.png

然后選擇Run或Debug運(yùn)行hello配置項(xiàng)目炼吴。如果啟動(dòng)成功本鸣,在控制臺(tái)輸出如下信息:

image.png

Tomcat默認(rèn)開(kāi)啟了8080端口,要訪問(wèn)這個(gè)應(yīng)用提供的服務(wù)硅蹦,可以在瀏覽器中輸入:http://localhost:8080/荣德;可以看到我們寫(xiě)的輸出字符串:hello

將應(yīng)用打包發(fā)布

上面操作在IDEA環(huán)境中如何運(yùn)行一個(gè)應(yīng)用。如果我們 想把應(yīng)用發(fā)布出去童芹,可以在代碼清單中Maven配置增加一個(gè)發(fā)布插件來(lái)實(shí)現(xiàn)涮瞻,增加一個(gè)打包插件:spring-boot-maven-plugin,并增加一行打包的配置:<packaging>jar</packaging>這行配置指定將應(yīng)用工程打包成jar文件假褪。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

這樣就可以在IDEA中增=增加一個(gè)打包的配置署咽,打開(kāi)Run/Debug Configuration對(duì)話框,選擇增加配置一個(gè)Maven打包項(xiàng)目嗜价,在工作目錄中選擇工程所在根目錄艇抠,在命令行中出入package,并將配置保存為mvn如圖:

image.png

運(yùn)行mvn打包項(xiàng)目久锥,就可以將實(shí)例工程打包家淤,打包的文件將輸出在工程的target目錄中。

image.png

如果已經(jīng)安裝了Maven,也可以直接使用Maven的命令打包瑟由。打開(kāi)一個(gè)命令行窗口搓幌,將路徑切換到工程根目錄中晌梨,直接在命令行輸入mvn package毅该,同樣也能將項(xiàng)目打包成jar文件梦谜。

打包成功后,在工程的target目錄中將會(huì)生成jar文件demo-0.0.1-SNAPSHOT.jar殴瘦。在命令行窗口中切換到target目錄中狠角,運(yùn)行如下指令,就能啟動(dòng)應(yīng)用蚪腋。

java -jar demo-0.0.1-SNAPSHOT.jar

如果按照傳統(tǒng)的做法丰歌,將工程發(fā)布成war文件,應(yīng)該將代碼清單中Maven配置<packaging>jar</packaging>改成<packaging>war</packaging>這樣就可以打包成war文件屉凯。

注意:

如果自主使用Tomcat運(yùn)行應(yīng)用立帖,在安裝jdk時(shí)必須配置*JAVA_HOME環(huán)境變量,同時(shí)jdk版本1.8以上悠砚。Tomcat必須是8.0以上的版本晓勇。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子绑咱,更是在濱河造成了極大的恐慌绰筛,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件描融,死亡現(xiàn)場(chǎng)離奇詭異别智,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)稼稿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)讳窟,“玉大人让歼,你說(shuō)我怎么就攤上這事±龇龋” “怎么了谋右?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)补箍。 經(jīng)常有香客問(wèn)我改执,道長(zhǎng),這世上最難降的妖魔是什么坑雅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任辈挂,我火速辦了婚禮,結(jié)果婚禮上裹粤,老公的妹妹穿的比我還像新娘终蒂。我一直安慰自己,他們只是感情好遥诉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布拇泣。 她就那樣靜靜地躺著,像睡著了一般矮锈。 火紅的嫁衣襯著肌膚如雪霉翔。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天苞笨,我揣著相機(jī)與錄音债朵,去河邊找鬼。 笑死猫缭,一個(gè)胖子當(dāng)著我的面吹牛葱弟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播猜丹,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼芝加,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起藏杖,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤将塑,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后蝌麸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體点寥,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年来吩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敢辩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡弟疆,死狀恐怖戚长,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怠苔,我是刑警寧澤同廉,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站柑司,受9級(jí)特大地震影響迫肖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜攒驰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一蟆湖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧玻粪,春花似錦帐姻、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至痹籍,卻和暖如春呢铆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蹲缠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工棺克, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人线定。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓娜谊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親斤讥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纱皆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,803評(píng)論 6 342
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器派草,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 1. SpringBoot介紹 Spring Boot是Spring社區(qū)較新的一個(gè)項(xiàng)目搀缠。該項(xiàng)目的目的是幫助開(kāi)發(fā)者更...
    engine_xc閱讀 770評(píng)論 0 1
  • 文/朵朵魚(yú) 蘇子葉,蘇州人士艺普,生于鐘鳴鼎食之家。幼時(shí)心思機(jī)敏搏存,聰明伶俐缴罗。凡四書(shū)五經(jīng)及諸子百家學(xué)說(shuō)蛆橡,過(guò)目者皆不忘泰演。先...
    朵朵魚(yú)閱讀 1,208評(píng)論 28 29
  • 韋老師第八講中提到了很多例子垃喊,老漢粘蟬、跳水的水花乌助、歌手與藝術(shù)家、豆子原理赏参、李小龍、小混混與少林寺學(xué)徒比武皇耗、金庸小...
    精神燦爛閱讀 285評(píng)論 0 0