1. 程式人生 > >2、Spring Boot 2.x建立第一個專案

2、Spring Boot 2.x建立第一個專案

Spring Boot 2.x建立第一個專案

這篇文章我們使用Spring Boot 2.x快速搭建一個Hello World專案,並且執行起來。

一、 開發環境

Java 1.8+

Maven 3.3.9+

Intellij Idea 2017.2.5

關於在Intellij Idea中配置JDK、Maven的方法,請讀者自行百度。這裡不再贅述。

本系列文章用到的開發環境相同,後續文章不再進行說明。

二、建立專案

1、使用Intellij Idea引導建立專案

專案名稱:aicode-bgms (Background Manage System)

在Intellij Idea中依次進行如下操作:點選File—〉New——〉Project進入如下頁面:

這裡選擇左側的“Spring Initializr”,然後點選“Next”

這裡我們輸入Group和Artifact,其他基本預設即可。註冊Package路徑的修改。然後點選“Next”;

這裡我們先只選擇Web依賴,其他依賴在後續文章中會根據需要再進行新增。點選“Next”;

這裡選擇專案所在的路徑,根據自己需要進行選擇,然後點選“Finish”按鈕;

此時,可能會彈出這個對話方塊,如果你進行了勾選Remember,don't ask again則以後建立專案則不會再進行提示。這裡可以根據自己的需要自行勾選與否,並且據已所好選擇This Window 或者 New Window。

如,我這裡不進行勾選,點選"New Window"。然後新開啟一個Idea視窗,進入專案的開發環境。

把目錄都開啟後,可以看到如上圖所示的目錄結構,這裡就是Spring Boot為我們建立的預設的目錄結構。

我們開啟pom.xml檔案,可以看到,有如下的parent。Spring Boot 預設要繼承parent的pom;

<parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>2.1.0.RELEASE</version>

        <relativePath/> <!-- lookup parent from repository -->

</parent>

spring-boot-starter-parent的作用::

  1)jar包的版本管理;

  2)配置檔案的過濾;

  3)常用外掛管理。

繼承了parent的pom後,我們就可以依賴SpringBoot提供的各種starter,這種方式對於小型專案或者以學習為目的使用還是比較方便的。但是對於很多生產環境的專案,我們一般都自定義自己專案的parent工程。Maven不允許有多個parent標籤,這種情況我們需要採用下面一種方式。不使用parent標籤,使用maven的dependencyManagement標籤,來統一對依賴進行管理。可以使用如下程式碼:

<dependencyManagement>

        <dependencies>

                <dependency>

                        <groupId>org.springframework.boot</groupId>

                        <artifactId>spring-boot-dependencies</artifactId>

                        <version>2.1.0.RELEASE</version>

                        <type>pom</type>

                        <scope>import</scope>

                </dependency>

        </dependencies>

</dependencyManagement>

這裡我們為了快速體驗Spring Boot就採用預設方式了,繼續Spring Boot為我們生成的程式碼,在依賴中我們看到,添加了如下兩個依賴項:

<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>

還有下面一個外掛

<plugin>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

這個外掛能夠以Maven的方式為應用提供Spring Boot的支援,即為Spring Boot應用提供了執行Maven操作的可能。能夠將Spring Boot應用打包為可執行的jar或war檔案,然後以通常的方式執行Spring Boot應用。

如上圖所示,輸入Group和Artifact的內容,在Dependencies中輸入Web,然後點選下面的Generate Project,即可生成專案。

我們把生成的專案引入Idea或其他IDE中即可。

三、專案中使用jsp

我們開啟專案中的AicodeBgmsApplication.java檔案,看到這裡有一個main函式,右鍵,然後點選 Run 'AicodeBgmsApplication' ,然後可以看到專案正常啟動;

在啟動日誌中,看到下面這一行

Tomcat started on port(s): 8080 (http) with context path ''

說明Spring Boot已經在8080埠為我們啟動了Tomcat。

但如果此時,我們在瀏覽器中輸入http://localhost:8080/進行訪問,卻發現報錯了。

因為我們還沒有引入Spring Boot對JSP的相關支援,並且專案中沒有任何頁面可以訪問,所以跳轉到的預設的/error頁面。

下面我們加入相關配置

1、配置檔案新增配置資訊

在專案中預設生成的application.properties中新增如下內容

spring.mvc.view.prefix: /WEB-INF/jsp/

spring.mvc.view.suffix: .jsp

  • spring.mvc.view.prefix 指明 jsp 檔案在 src/main/webapp 下的哪個目錄
  • spring.mvc.view.suffix 指明 jsp 以什麼樣的字尾結尾

2、引入相關的依賴包

<dependency>

        <groupId>javax.servlet</groupId>

        <artifactId>jstl</artifactId>

</dependency>

<dependency>

        <groupId>org.apache.tomcat.embed</groupId>

        <artifactId>tomcat-embed-jasper</artifactId>

</dependency>

spring-boot-starter-web 包依賴了 spring-boot-starter-tomcat 不需要再單獨配置。引入 jstl 和內嵌的 tomcat,jstl 是一個 JSP 標籤集合,它封裝了 JSP 應用的通用核心功能。tomcat-embed-jasper 主要用來支援 JSP 的解析和執行。

3、新增jsp目錄

如圖所示,依次建立目錄,webapp、WEB-INF、jsp,這裡的目錄名稱一定要與配置檔案中的一致,然後建立測試使用的test.jsp檔案,內容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">

<body>

    <br>

    來自JAVA的回覆: ${message},我來了

</body>

</html>

然後建立後端服務程式,在com.aicode.bgms目錄下建立controller目錄,然後建立HelloController.java類檔案,如下圖:

然後編輯類HelloController.java中的程式碼,程式碼如下:

package com.aicode.bgms.controller;

import org.springframework.stereotype.Controller;

import org.springframework.ui.ModelMap;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public class HelloController {

@RequestMapping("/test")

public String hello(ModelMap model){

        model.put("message", "Hello Spring Boot 2.x");

        return "test";

}

}

此時我們再執行程式,Run 'AicodeBgmsApplication',專案正常啟動後,我們再開啟瀏覽器,輸入 http://localhost:8080/hello,可以看到如下頁面

專案啟動執行正常。

第一個Hello World的Spring Boot 2.x專案完成了。