Spring Boot(一) .NET程式設計師入門篇
一、Spring Boot之我見
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。
Spring Boot 是所有基於 Spring 開發的專案的起點。Spring Boot 的設計是為了讓你儘可能快的跑起來 Spring 應用程式並且儘可能減少你的配置檔案
這是百科上對Spring Boot的說明。實際上在我看來Spring Boot就是Spring等一系列的java技術棧框架的組合加上約定大於配置的思想。它並不是一項新的技術也不是一個新的框架,而是各種技術的一個組合,它預設配置了很多框架的使用方式。它的出現,極大的提高了java應用的開發效率。其特性就是輕量級、可插拔、微服務。同時idea和spring boot的出現也顛覆了我一個.net程式設計師曾經對java的認知(我是.net出身的程式設計師,對於java最大的印象就是“配置”、“配置”、“配置”和難用的一筆的IDE)。原來Java專案開發也可以變得優雅起來!
二、專案搭建
在還是SSM(SSH)的時代搭建一個Web專案大概需要以下幾步
新建專案
配置Web.xml,載入Spring和Spring Mvc
配置資料庫連線、配置Spring事務,配置mybatis
配置載入配置檔案的讀取,開啟註解
配置日誌檔案
配置完成後部署Tomcat除錯
...
一堆的配置,看得人頭大,也讓很多初學者望而卻步。
而有了Spring Boot,一切將會簡單而優雅。
本文將從Hello World做起,搭建一個簡單的Spring Boot Web專案。
File——New——Project(Moudle)
注意: 圖中的https://start.spring.io/,也可以直接開啟,在網站上直接生成專案下載,用idea開啟也是一樣的。
- Next將看到以下介面
- 繼續下一步,選擇Web->Spring Boot,在這裡我們可以選擇Spring Boot版本
- 繼續下一步
- 點選完成將看到如下目錄結構
至此,一個Spring Boot專案就建立完成。
三、專案結構說明
- 專案結構中主要目錄說明大致如下
->spring-boot-web (專案或模組) ---> src ----->main ------->java (Java程式碼目錄) --------->spring.boot.web (包spring.boot.web) ----------->SpringBootWebApplication (Spring Boot啟動類) ------->resources --------->static (靜態資源目錄) --------->templates (檢視模板目錄) --------->application.properties (專案配置檔案) ------->test (測試) --------->java ----------->spring.boot.web ----------->SpringBootWebApplicationTests (Spring Boot測試啟動類) --->pom.xml (maven pom配置檔案)
- pom檔案說明
pom.xml,它是maven來管理各種jar包依賴的一個配置檔案,maven相當於.net中的nuget,是一個包管理工具。我們可以看到專案搭建好之後,就預設為我們加上了下面這些配置。
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--父節點配置了Spring Boot的一些資訊,父節點代表子節點可以繼承父節點的一些配置,如版本號,在這裡配置了就不用在子節點配置了-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--專案資訊-->
<groupId>spring.boot.examples</groupId>
<artifactId>spring-boot-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-boot-web</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<!--依賴的包配置在下面這個節點-->
<dependencies>
<!--引入Spring Boot Web模組-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入Spring Boot 測試模組-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!--Spring Boot Maven 外掛-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- Spring Boot啟動類
package spring.boot.web;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootWebApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootWebApplication.class, args);
}
}
啟動類是Spring Boot程式的入口。
四、Hello World
新建控制器
我們在spring.boot.web下建一個controller包,包內新建HelloWorld類
package spring.boot.web.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorld { @RequestMapping("/helloWorld") public String Hello() { return "Hello World!"; } }
這裡有兩個註解:
@RestController
的意思就是controller裡面的方法都以json格式輸出,不用再寫什麼jackjson配置的了!@RequestMapping
配置Url對映啟動Spring Boot專案
由於Spring Boot專案內建Tomcat伺服器,我們不需要在部署到Tomcat。只需要要在配置檔案application.properties裡配置一下埠號,然後idea->run->run。
server.port=8888
如下圖,代表啟動成功!
開啟瀏覽器輸入:http://localhost:8888/helloWorld
至此,Hello World專案完成。於Java上,再次體驗到了簡潔優雅的開發!
示例代