1. 程式人生 > >Spring Boot應用總結更新

Spring Boot應用總結更新

req 表示 resources list 升級 文章 depend 單引號 nbsp

SpringBoot的產生背景:

SpringBoot的產生背景伴隨著微服務,微服務的相關概念參考上一篇的博客,分布式架構理論;

微服務的宏觀概念理解:

將一個大應用拆分成多個小應用,一個小應用是一個小型的服務,可以通過協議進行互通;

每個小應用是一個可獨立替換和獨立升級的服務;

下面看SpringBoot的優點:

技術分享圖片

SpringBoot構建應用構建的分布式簡單框架:

技術分享圖片

Srping Boot第一個Web應用:HelloWorld遇到的問題總結;

使用的編輯工具: Intellij Idea;

項目管理工具Maven:maven的安裝和配置以及原理性總結,請參考下一篇文章;

工程結構:

技術分享圖片

項目遇到的問題:

在我們配置controller層的時候,使用@Controller註解的時候,如下:

技術分享圖片

使用瀏覽器進行Request請求的時候,會遇到下面的問題:

技術分享圖片

問題出現在:

沒有使用模版。即@Controller 用來響應頁面,@Controller必須配合模版來使用。spring-boot 支持多種模版引擎包括:
1 FreeMarker
2 Groovy
3 Thymeleaf (Spring 官網使用這個)
4 Velocity
5 JSP (貌似Spring Boot官方不推薦,STS創建的項目會在src/main/resources 下有個templates 目錄,這裏就是讓我們放模版文件的,然後並沒有生成諸如 SpringMVC 中的webapp目錄)

本文以Thymeleaf為例介紹使用模版,具體步驟如下:

在pom.xml文件中添加如下模塊依賴:

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
  </dependency>

因此,我們就直接使用@RestController註解來處理http請求來,這樣簡單的多。

@RestController

Spring4之後新加入的註解,原來返回json需要@ResponseBody和@Controller配合。

即@RestController是@ResponseBody和@Controller的組合註解。

@RestController
public class HelloController {

    @RequestMapping(value="/hello",method= RequestMethod.GET)
    public String sayHello(){
        return "hello";
    }
}

配置文件:

1、application.properties

2、application.yml

YAML的語法:

K:空格v kv鍵值對 註意不要漏掉空格

以空格的縮進表示層級關系;只要左對齊的一列數據則表示同一個層級;

eg:

serve:

  port: 8080

  path: hello

字面量(數字,字符串,布爾)

  字符串默認不需要加上單引號或者雙引號 eg: port: 8080

  如果加上雙引號則不會轉義字符串中的特殊字符

  如果加上單引號則會進行特殊字符進行轉義;

對象,Map鍵值對

  在下一行寫對象的屬性和值的關系,需要註意縮進

  eg:

  friends:

    lastName: zhangsan

    age: 20

  另一種寫法:

  friends: {lastName: zhangsan, age: 20}

數組(List, Set):

  用 -空格 表示數組中的一個元素:

  eg:

  pets:

    - cat

    - dog

  行內寫法:

  pets: [cat, dog]

代碼舉例:

技術分享圖片

在Person類上加上ConfigurationProperties 註解;與配置文件信息進行綁定

技術分享圖片技術分享圖片

使用properties的方式:

技術分享圖片

Spring Boot應用總結更新