從2016年9月開始接觸IT,學習經歷主要分爲如下三個階段html
從最基礎的前端技術HTML、JavaScript、CSS開始入門,再到後端技術Java基礎、MySQL數據庫基礎知識、JDBC、Servclet、JSP。利用這些簡單技術實現了從前端、後臺、到數據庫單表的CRUD操做。前端
剛入行時經常聽別人提及XXX框架好NB,能夠幹XXX。我接觸了第一個框架Spring,緊接着MyBatis;再到前端框架Angular二、Vue。各類先後端框架的學習讓我從入門時對編程的枯燥感受逐漸消退,由於站在巨人的肩膀上真的能夠省下好多經歷和時間,前提是你從基礎一步步走過來。java
研一暑假開始跟着團隊老師進行項目開發,雖然開始只是作一些邊角料的事情,可是仍是以爲收穫頗豐。剛開始都是模仿別人依葫蘆畫瓢進行業務實現,當時以爲這真的好LOW,好LOW,好LOW。如今回想起來,以爲當時的想法是多麼的幼稚好笑,總想着一嘴就吃個胖子,一步就登上山頂,簡直太愚蠢啦。還好,當時沒有放棄,慢慢跟着項目組老師一邊學習、一邊摸索,到現在算是一個初級程序員吧。程序員
隨着,SpringBoot、SpringCloud等微服務相關技術的出現,逐漸發現Spring你們族知識真的好強大,強大到沒有一個Java程序員不知道它,不使用它。鑑於以前對Spring先關知識的不重視,所繫如今決定從新學習一邊Spring相關知識點來重識Spring。web
本系列文章都是基於SpringBoot做爲基礎開發環境的;spring
利用一個Maven項目來管理各個知識點對應的全部SpringBoot項目,參考博文;數據庫
思惟導圖忽略章節編號,重點在層次劃分。apache
JDK: 1.8編程
MAVEN: 3.5.0後端
SpringBoot:2.1.3
開發工具:IntelliJ IDEA 2017.2.5 旗艦版
spring-boot-starter-web:該依賴包含了Spring環境基礎依賴、SpringMVC框架依賴等等
spring-boot-starter-test:測試環境依賴
spring-boot-devtools:開發階段項目自動重啓相關的依賴,參考博文
lombok:代碼簡化相關依賴
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-starter-parent</artifactId> 8 <version>2.1.4.RELEASE</version> 9 <relativePath/> <!-- lookup parent from repository --> 10 </parent> 11 <groupId>com.xunyji</groupId> 12 <artifactId>chapter0101</artifactId> 13 <version>0.0.1-SNAPSHOT</version> 14 <name>chapter0101</name> 15 <description>Demo project for Spring Boot</description> 16 17 <properties> 18 <java.version>1.8</java.version> 19 </properties> 20 21 <dependencies> 22 <dependency> 23 <groupId>org.springframework.boot</groupId> 24 <artifactId>spring-boot-starter-web</artifactId> 25 </dependency> 26 27 <dependency> 28 <groupId>org.springframework.boot</groupId> 29 <artifactId>spring-boot-devtools</artifactId> 30 <scope>runtime</scope> 31 </dependency> 32 <dependency> 33 <groupId>org.projectlombok</groupId> 34 <artifactId>lombok</artifactId> 35 <optional>true</optional> 36 </dependency> 37 <dependency> 38 <groupId>org.springframework.boot</groupId> 39 <artifactId>spring-boot-starter-test</artifactId> 40 <scope>test</scope> 41 </dependency> 42 </dependencies> 43 44 <build> 45 <plugins> 46 <plugin> 47 <groupId>org.springframework.boot</groupId> 48 <artifactId>spring-boot-maven-plugin</artifactId> 49 </plugin> 50 </plugins> 51 </build> 52 53 </project>
該接口用來模擬RESTful接口,涉及到@RestController、@RequestMapping、@Slf4j等相關注解參見 -> 參考博文
package com.xunyji.chapter0101.web; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author AltEnter * @create 2019-04-06 15:24 * @desc 測試控制層 **/ @RestController @RequestMapping(value = "/test") @Slf4j public class TestController { @GetMapping(value = "/connect") public String connect() { String msg = "先後端鏈接測試"; log.info(msg); return msg; } }
(1)直接利用IDEA啓動:進入到main方法所在類右鍵 -> 執行便可
(2)利用MAVEN啓動:進入項目根目錄執行 mvn spring-boot:run
(3)利用jar包啓動(項目部署時用):進入項目根目錄執行 mvn clean package -> 進入target目錄後會發現多了一個jar文件 -> 利用 java -jar jar文件名
SpringBoot默認使用內置的Tomcat做爲應用容器;
SpringBoot默認暴露8080端口
利用瀏覽器訪問 http://127.0.0.1:8080/test/connect
SpringBoot提供了Actuator對項目進行監控,例如Bean監控、URL監控等等。參考博文
實例之判斷Bean存在與否:在開發&調試過程當中,提示某個Bean找不到。此時就須要查看運行環境中有沒有這個bean,以便快速排除出該問題的具體緣由。
(1)引入spring-boot-starter-actuator依賴:在pom文件中引入 spring-boot-starter-actuator 便可
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
(2)查看actuator提供的監控列表:在瀏覽器中訪問 http://127.0.0.1:8080/actuator 便可
(1)問題描述:集成Actuator後,所有使用默認配置時,actuator只暴露了幾個可用的接口信息,利用http://127.0.0.1:8080/actuator能夠查看暴露的接口信息;當你想使用http://localhost:8080/actuator/beans 查看項目中存在哪些Bean時會發現,這個連接根本不可用
(2)問題根源:SpringBoot項目即便集成了Actuator,也不會默認提供全部的監控URL,須要開發者經過配置文件的方式開啓某些監控端點
(3)解決問題:在application.yml配置文件中開啓全部端點便可,目的是暴露全部端點給web端,這樣actuator提供的監控端點就能夠生效啦
(4)重啓醒目後查看控制檯actuator有關的暴露端點數量:開啓前actuator提供的端口只有兩個有效,開啓後由15個可用
(5)實例測試:開啓暴露全部後利用http://127.0.0.1:8080/actuator能夠查看此時actuator暴露的接口信息,此時利用http://localhost:8080/actuator/beans查看項目的Bean信息就會生效啦