【SpringBoot學習一】開發入門–快速創建springboot程序

前言

本片博客記錄快速創建springboot工程的兩種方式。一種是使用maven創建,一種是使用spring initializr創建。開發環境JDK1.8、IDEA、maven。

SpringBoot 優點

  • 可快速構建spring應用
  • 直接嵌入tomcat、jetty、undenrtow服務器(無須部署war文件)
  • 提供依賴啟動器(starter)簡化構建配置
  • 極大程度的自動化配置Spring和第三方庫
  • 提供生產就緒功能,例如指標監控檢測、外部檢測
  • 極少代碼生成和XML配置

使用maven創建Spring Boot項目

第一步:

首先在左上角的file->new->project(如果是新安裝的IDEA需要配置maven倉庫,當然idea自己也會幫你配置,但是好像在C盤,並且可能會出現一些錯誤提示問題,如果不介意然可以使用,但是還是建議使用自己的maven倉庫創建,直接點擊new project),然後出現下面圖片顯示,選擇maven項目,點擊next。到下一個界面。
image

第二步:

這個界面的name就是你的項目名,location就是你項目的地址路徑,groupid一般是你網址域名倒着寫,例如com.hjk.www那反過來就是www.hjk.com,這一般是公司定義的,我們可以自己命名。
image

第三步:

然後我們找到pom.xml文件,在裏面添加兩個依賴,添加依賴你的maven倉庫如果沒有這個包是會報錯的,然後我們點擊一個類似刷新的圖標idea就會加載相關的包了,我們等它加載完,第一次加載應該會等很長時間,我們耐心等待一下。如果在加載完成之後你的parent的那個依賴會爆紅,可能是應為你的倉庫是idea的默認C盤那個倉庫,建議換成自己的。這個報錯的原因好像是那個倉庫下載的是基礎包,沒有這個parent的包!
image

第四步:

最後我們查看一下我們所導入的包都有什麼,點擊右邊的maven->dependencies查看
image

第五步:

我們創建一個主程序啟動類
我們在學mvc是常常都是有幾個包(dao、service、controller)我們在寫springboot項目時也是差不多的,這裡我們在dao包的同級目錄下創建一個主程序類。
image

代碼:

package com.hjk;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class springbootParent {

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

最後我們創建一個controller測試一下

在controller包裏面創建一個HelloController類

package com.hjk.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(){
        return "hello SpringBoot";
    }
}

運行springbootParent類,然後訪問”//localhost:8080/hello” 然後就能在這個界面看到字符串輸出了。

與html聯繫

我們怎麼通過controller去訪問html界面呢,
首先我們把thymeleaf依賴導入pom.xml

       <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-java8time</artifactId>
        </dependency>

然後我們把HelloController改一下。因為上面我們用的是@RestController註解,返回的是一個json字符串,不會被spring解析,那是適用於傳數據使用,我們需要使用@Controller註解進行頁面的跳轉。

package com.hjk.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello(){
        return "hello";
    }
    @RequestMapping("/a")
    public String index(){
        return "index";
    }
}

然後再resources文件夾下,建立這樣的結構
image

頁面裏面寫什麼無所謂。
然後我們重新啟動項目,通過訪問”//localhost:8080/hello” 和”//localhost:8080/a「 可以跳轉到頁面。我們可以看到,註解裏面寫的是url路徑,return後面的是需要跳轉的頁面名。

解釋點

註解 解釋
@Controller 把用戶提交來的請求通過對URL的匹配,分配個不同的接收器,再進行處理,然後向用戶返回結果
@ResponseBody 將方法返回值綁定到 Web 響應主體
@RestController @ResponseBody和@Controller組合註解,用於返回JSON字符串
@RequestMapping 用來處理請求地址映射的註解
@GetMapping 等價於@RequestMapping(value = “”,method = RequestMethod.GET)就是使用Get方法提交

使用Spring initializr快速創建

使用maven創建還是比較麻煩的,我們使用Spring initiallizr創建。

第一步:

右上角file->new->project–>spring initializr->next,這種方式1是在聯網情況下創建的,defaule就是springboot的默認網址。
image

第二步:

點擊完next之後可以看到這個界面有Group組名,Artifact項目名。java version java版本,description項目描述,package包名。然後點擊next

image

第三步:

在這個界面我們可以選擇springboot版本,和直接加入依賴,我們在這裡直接加入web依賴spring web和Template的Thymeleaf依賴,點上對勾後可以在最右邊里看到你選擇的依賴。然後點擊next。
image

第四步:

之前設置完了,在這裡可以直接點擊finish,這樣就創建了一個sprigboot項目。
image
我們可以看到我們的項目結構,很多springboot都幫我們創建了。
image

最後

我們和上面一樣,創建HelloController類,並且在templates裏面創建一個hello.html文件。
HelloController代碼

package com.hjk.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello(){
        return "hello";
    }
}

最後運行程序,訪問”//localhost:8080/hello” ,成功;