1. 程式人生 > >Spring Boot (一):簡單的開始

Spring Boot (一):簡單的開始

最近開始研究了下Spring Boot,簡單寫了個Demo。中途也遇到了一些坑。跟大家分享下。

如果你用了IDEA後,你會發現,Eclipse已經漸漸地要離開自己的懷抱中了。豐富的外掛、智慧提示、靈活的快捷鍵、多功能除錯......簡直是完美,如果非要挑剔,我只能說非社群版是收費版了。

一、環境搭建

Spring Boot 的搭建非常簡單。如果想自己純手動搭建,也不會話費多長時間。以下分享主要是用IDEA搭建。

環境:

  • IDEA 官網下載,最好用Ultimate版本收費版,註冊碼問度娘,一般都是一年的試用期。
  • JDK1.7+ 官網下載。 至少1.7版本。
  • Maven 官網下載

以圖說話:


此處圖省略, 最後finish .構建完成後,預設是maven。

啟動:

點選一下三角形啟動,或者滑鼠右鍵放到類名,執行run操作,或快捷鍵shift+F10或Ctril+Shift+F10

二、客戶端請求Spring Boot


新建個TestController類,寫個請求,返回helloworld,編碼完成後,啟動服務,訪問頁面http://localhost:8080/hello就會出現hello World

注:

  1. RestController: 相當於@Controller、@ResponseBody的結合,當然還有寫其他標記型註解,即@Target @Retention @Documented 
  2. @Controller: 控制器Controller 負責處理由DispatcherServlet 分發的請求,它把使用者請求的資料經過業務處理層處理之後封裝成一個Model ,然後再把該Model 返回給對應的View 進行展示[email protected]只是定義了一個控制器,而使用@request Mapping註解的方法才是真正處理業務請求的方法。
  3. @ResquestBody:讀取Request請求的body部分的資料,使用系統預設配置HttpMessageConverter進行解析,然後吧響應的資料繫結到要返回的物件上。
  4. @Target: 首先了說下元註解,即註解的註解。包含@Target @Retention @Documented @Inherited四種。、@Target:定義註解的作用目標。多個用大括號,如                    @Target({ElementType.TYPE,ElementType.METHOD})的寫法。 @Target(ElementType.TYPE)   // 介面、類、列舉、註解 @Target(ElementType.FIELD)  // 欄位、列舉的常量 @Target(ElementType.METHOD)  // 方法 @Target(ElementType.PARAMETER)  // 方法引數 @Target(ElementType.CONSTRUCTOR)  // 建構函式 @Target(ElementType.LOCAL_VARIABLE) // 區域性變數 @Target(ElementType.ANNOTATION_TYPE) // 註解 @Target(ElementType.PACKAGE) / //    
  5. Retention(RetentionPolicy.RUNTIME):蓋住姐會在class位元組碼檔案中存在,在執行時可以通過放射機制獲取。直觀點,反編譯檔案能看到該註解。
  6. @Document:說明該註解將被包含在javadoc中。即說明是屬於公共的API文件
  7. @Inherited:說明子類可以繼承父類中的該註解

三、配置檔案

一般配置檔案,我們都用properties來寫,但springBoot1.3後開始推薦使用yaml。字尾名可用yml簡寫也可以用yaml。yaml可讀性強,又上下層次結構,比xml看起來方便。數遍提下,最近公司用yaml寫前端模板檔案,真的不適合,導致後來直接放棄,個人覺得模板還不如用jade,畢竟有css基礎的人都會寫。Spring預設載入applicantion.yaml(可以是yml或properties字尾名)。如果配置多環境,可以建立application-XX.yaml檔案,但入口還是application.yaml檔案,但需要在該檔案配置spring.profiles.active = XX。當然還有一種方式,直接全部寫到application.yaml檔案裡。但要  --- spring 這樣的格式來區分。
  • 單檔案

  • 多個檔案

  • 多環境的配置,另外一種配置檔案寫法如下:

 總結:

1.配置檔案注意空格

2.@ConfigurationProperties(prefix="girl")註解,IDE會提示Spring Boot Configuration Annotation Procesor not foubnd in classpath的警告,可以在maven的pom.xml新增依賴,具體參考https://docs.spring.io/spring-boot/docs/1.5.8.RELEASE/reference/html/configuration-metadata.html#configuration-metadata-annotation-processor的官方介紹".3 Generating your own meta-data using the annotation processor"

3. java 檔案呼叫. @ConfigurationProperties的類時,就不要在屬性上加上@value註解。
<!-- spring-boot-configuration-processor 不影響ConfigurationProperties註解使用 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>