Spring Boot (一):簡單的開始
阿新 • • 發佈:2019-01-01
最近開始研究了下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
注:
- RestController: 相當於@Controller、@ResponseBody的結合,當然還有寫其他標記型註解,即@Target @Retention @Documented
- @Controller: 控制器Controller 負責處理由DispatcherServlet 分發的請求,它把使用者請求的資料經過業務處理層處理之後封裝成一個Model ,然後再把該Model 返回給對應的View 進行展示[email protected]只是定義了一個控制器,而使用@request Mapping註解的方法才是真正處理業務請求的方法。
- @ResquestBody:讀取Request請求的body部分的資料,使用系統預設配置HttpMessageConverter進行解析,然後吧響應的資料繫結到要返回的物件上。
- @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) / // 包
- Retention(RetentionPolicy.RUNTIME):蓋住姐會在class位元組碼檔案中存在,在執行時可以通過放射機制獲取。直觀點,反編譯檔案能看到該註解。
- @Document:說明該註解將被包含在javadoc中。即說明是屬於公共的API文件
- @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>