一、什麼是springBoot?
spring幾乎是每一位Java開發人員都耳熟能詳的開發框架,不論你是一名初出茅廬的程序員還是經驗豐富的老司機,都會對其有一定的瞭解或者使用經驗。傳統的spring web開發模式,使用xml格式配置集成各種組件,這使得我們能夠簡單快速的構建一個web工程,但是對於大多數入門級開發人員來說,使用xml形式開發很容易出現紕漏,進而導致運行失敗或者更大的問題,因此會浪費開發人員很多寶貴的時間,對公司來說也是有所損失。spring的開源組織很早就意識到這個問題,於是他們便對spring框架的全系列組件進行了內部封裝。對外只提供maven jar的形式來引入配置,讓每一個spring項目都是以spring的子項目的形式來運行,這樣開發人員不用再去注重配置文件的繁瑣,而是把精力放到業務邏輯以及更深層次的架構方面。
2014年4月1日,springBoot發佈了第一個正式版本,該項目旨在幫助開發者更容易的創建基於spring的應用程序和服務,使現有的和新的spring開發者能夠最快速的獲得所需要的spring功能。
二、springBoot的優缺
1. 爲所有Spring開發者更快的入門
2. 開箱即用,提供各種默認配置來簡化項目配置
3. 內嵌式容器簡化Web項目
4. 沒有冗餘代碼生成和XML配置的要求
5. 提供一系列大型企業級項目的功能性特性
三、系統要求
2. 開發工具(IntelliJ IDEA 2017.3.1)
3. 數據庫( MySQL 5.7.20)
四、構建springBoot工程
點擊Create New Project來創建一個新的springboot應用程序(如下圖)
點擊next進入下一步,根據提示填寫內容即可,此步驟內需要注意的是packaging要選擇jar,如果上面我們選擇了war形式,也添加了Web依賴並且在開發過程中使用Application形式啓動,則需要註釋pom.xml配置文件內tomcat依賴的scope屬性。(如下圖)
next勾選依賴,此處我們只需要勾選web依賴即可,後續依賴逐步添加(如下圖)
next finish完成工程的創建。
工程的目錄結構如下
我們可以看到以上工程的主要目錄結構
1.src/main/java 存放項目所有源代碼的目錄SpringbootDemoApplication.java文件爲項目啓動入庫文件。2.src/main/resources 存放項目所有資源文件以及配置文件目錄
static目錄存放靜態資源,例如音頻、圖片等。
template目錄存放頁面,例如HTML文件、JSP文件等。application.properties 該配置文件是項目的核心配置文件
3.src/test存放測試代碼目錄
五、自動生成文件解析
1.POM文件
pom.xml maven配置文件,因爲我們採用的maven管理jar,所以這裏會自動生成一個pom文件
<?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.mxy</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot-demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.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-web</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>
<groupId></groupId>標籤標記項目或者組織的唯一標誌,並且配置時生成的路徑也是由此生成,如com.mxy.springboot生成的相對路徑爲:/com/mxy/springboot。<artifactId></artifactId>標籤標記項目的通用名稱。
<version></version>標籤標記版本信息。
<parent></parent>標籤引入springboot父類依賴,它可以提供依賴管理,引入以後在聲明其他依賴關係時,工程自動引入springboot其他相關依賴包,不需要開發人員單獨進行引入。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies></dependencies>依賴關係。<dependency></dependency>標籤引入spring-web組件,springboot核心實現其實是一個springMVC,所以只要引入spring-web組件,工程默認引入所有spring相關依賴。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<plugin></plugin>如果我們使用main啓動spring,那麼plugin必須添加,否則工程無法啓動。如果使用maven的spring-boot:run啓動,則不需要以下配置。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
2.SpringbootDemoApplication.java
SpringbootDemoApplication該類是程序的入口類內有個main方法,可以直接通過run as運行項目。
@SpringBootApplication註解
@SpringBootApplication註解,它是聲明當前類爲sprinboot的入口類。而一個springboot項目內有且只能有一個這個註解存在。
3.application.properties 該配置文件是項目的核心配置文件,以xx.xx.xx的形式存在.
六、HelloWord
在src/main/java目錄下創建目錄controller,新建Java類HelloWordController,並且編寫方法index
package com.mxy.springboot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWordController {
@RequestMapping("/index")
public String index(){
return "success";
}
}
@RestController註解,表示該接口全部以json格式返回,可以直接編寫Restful接口。@RequestMapping註解,RequestMapping是一個用來處理請求地址映射的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作爲父路徑。
運行工程,可以看到默認端口8080,啓動成功。
瀏覽器錄入http://localhost:8080/index訪問index服務