spring-boot筆記-工程搭建(一)
spring-boot介紹
以下內容來自《Spring Boot參考指南-中文版》。spring-boot最大的好處就是可以很快速的構建web專案,很適用於現在流行的微服務架構。
Spring Boot簡化了基於Spring的應用開發,你只需要”run”就能建立一個獨立的,產品級別的Spring應用。
我們為Spring平臺及第三方庫提供開箱即用的設定,這樣你就可以有條不紊地開始。多數Spring Boot應用只需要很少的Spring配置。
你可以使用Spring Boot建立Java應用,並使用java
-jar啟動它或採用傳統的war部署方式。我們也提供了一個執行”spring指令碼”的命令列工具。 我們主要的目標是:
- 為所有Spring開發提供一個從根本上更快,且隨處可得的入門體驗。
- 開箱即用,但通過不採用預設設定可以快速擺脫這種方式。
- 提供一系列大型專案常用的非功能性特徵,比如:內嵌伺服器,安全,指標,健康檢測,外部化配置。
- 絕對沒有程式碼生成,也不需要XML配置。
工程搭建
快速構建
- 進入該頁面,點選 Switch to the full version.,可以看到常用的基本配置。
- 至於依賴的jar包,我們可以在該頁面下面的可選項中勾選,就會新增我們需要的jar包。
- 點選Generate Project下載專案壓縮包,然後再用我們的開發工具開啟該maven專案即可進行開發。
手工建立
當然,我們也可以自己建立一個maven專案,手動來新增相關依賴。下面的這個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.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.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</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>
這個pom.xml的內容是我只配置了基本資訊,沒有配置其他jar包依賴的內容,該專案工程開啟也就一個java類,和一個空的配置檔案。重點在於parent的配置,這裡是引入springboot的核心內容及版本資訊,有興趣的同學可以自己點進去看看,裡面是把各種各樣的東西都引入了,等待著我們的開啟,如果我們在dependencies中引入相關jar包,就可以使用相關的功能。下面的spring-boot-starter是springboot的基本配置,包括自動配置支援、日誌和YAML;
目錄結構
一般目錄結構如下:
com
+- example
+- demo
+- Application.java
|
+- domain
| +- SysInfo.java
| +- SysInfoRepository.java
|
+- service
| +- SysInfoService.java
|
+- controller
| +- SysInfoController.java
|
- Application.java 建議放到跟目錄下面,主要用於做一些框架配置
- domain目錄主要用於實體(Entity)與資料訪問層(Repository)
- service 層主要是業務類程式碼
- controller 負責頁面訪問控制
專案執行
為了更好的執行和體驗該專案,我們引入web模組,寫一個介面,通過瀏覽器訪問。
- maven dependencies新增相關依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- Application類
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
//@RestController //相當於同時新增@Controller和@ResponseBody註解。
//@EnableAutoConfiguration
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 自己隨便寫一個Controller類
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by gonghao on 2017/5/31.
*/
@RestController
public class SimpleController {
@RequestMapping("/hello")
public String index() {
return "Hello Spring Boot";
}
@RequestMapping("/test")
public String test(){
return "Test";
}
}
啟動方式
1.直接執行Application.java類,右鍵run或者debug即可。
瀏覽器輸入 http://localhost:8080/hello 訪問
2.maven 命令列:在該專案根目錄執行命令 mvn spring-boot:run
直到出現build-success即可。
3.jar包方式執行:在該專案根目錄執行 mvn package,將會在target目錄下生成一個可執行的jar包,jar包中包含了所有依賴的jar包。進到target層,執行java -jar xxxx.jar 即可啟動專案
返回上一層目錄,按住shift鍵右鍵,在此處開啟命令視窗:
訪問:
至此,我們就已經完成了一個springboot的demo,相比於我們傳統的建立web工程的方式簡直不要太方便。後面我們繼續學習springboot的其他內容。