SpringBoot31 重識Spring01-環境搭建、Actuator監控、屬性配置、多環境配置

 1 前言

1.1 學習階段說明  

  從2016年9月開始接觸IT,學習經歷主要分爲如下三個階段html

  1.1.1 入門階段

    從最基礎的前端技術HTML、JavaScript、CSS開始入門,再到後端技術Java基礎、MySQL數據庫基礎知識、JDBC、Servclet、JSP。利用這些簡單技術實現了從前端、後臺、到數據庫單表的CRUD操做。前端

  1.1.2 進階階段

    剛入行時經常聽別人提及XXX框架好NB,能夠幹XXX。我接觸了第一個框架Spring,緊接着MyBatis;再到前端框架Angular二、Vue。各類先後端框架的學習讓我從入門時對編程的枯燥感受逐漸消退,由於站在巨人的肩膀上真的能夠省下好多經歷和時間,前提是你從基礎一步步走過來。java

  1.1.3 項目階段

    研一暑假開始跟着團隊老師進行項目開發,雖然開始只是作一些邊角料的事情,可是仍是以爲收穫頗豐。剛開始都是模仿別人依葫蘆畫瓢進行業務實現,當時以爲這真的好LOW,好LOW,好LOW。如今回想起來,以爲當時的想法是多麼的幼稚好笑,總想着一嘴就吃個胖子,一步就登上山頂,簡直太愚蠢啦。還好,當時沒有放棄,慢慢跟着項目組老師一邊學習、一邊摸索,到現在算是一個初級程序員吧。程序員

  隨着,SpringBoot、SpringCloud等微服務相關技術的出現,逐漸發現Spring你們族知識真的好強大,強大到沒有一個Java程序員不知道它,不使用它。鑑於以前對Spring先關知識的不重視,所繫如今決定從新學習一邊Spring相關知識點來重識Spring。web

  1.2 重識Spring系列說明

    本系列文章都是基於SpringBoot做爲基礎開發環境的;spring

    利用一個Maven項目來管理各個知識點對應的全部SpringBoot項目,參考博文數據庫

    思惟導圖忽略章節編號,重點在層次劃分。apache

 

2 項目環境

  JDK: 1.8編程

  MAVEN: 3.5.0後端

  SpringBoot:2.1.3

  開發工具:IntelliJ IDEA 2017.2.5 旗艦版

 

3 開發環境搭建

 

3.1 利用IDEA建立SpringBoot項目

  3.1.1 Web項目基本依賴

    spring-boot-starter-web:該依賴包含了Spring環境基礎依賴、SpringMVC框架依賴等等

    spring-boot-starter-test:測試環境依賴

  3.1.2 輔助依賴

    spring-boot-devtools:開發階段項目自動重啓相關的依賴,參考博文

    lombok:代碼簡化相關依賴

  3.1.3 完整POM文件

 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>
pom.xml

3.2 環境測試

  3.2.1 建立一個測試控制層接口

    該接口用來模擬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;
    }
}
測試控制層源代碼

   3.2.2 啓動項目

    (1)直接利用IDEA啓動:進入到main方法所在類右鍵 -> 執行便可

    (2)利用MAVEN啓動:進入項目根目錄執行 mvn spring-boot:run 

    (3)利用jar包啓動(項目部署時用):進入項目根目錄執行 mvn clean package -> 進入target目錄後會發現多了一個jar文件 -> 利用 java -jar jar文件名

 

  3.2.3 SpringBoot項目啓動說明

    SpringBoot默認使用內置的Tomcat做爲應用容器;

    SpringBoot默認暴露8080端口

  3.2.4 訪問RESTful接口

    利用瀏覽器訪問 http://127.0.0.1:8080/test/connect

 3.3 SpringBoot項目監控

  SpringBoot提供了Actuator對項目進行監控,例如Bean監控、URL監控等等。參考博文

  實例之判斷Bean存在與否:在開發&調試過程當中,提示某個Bean找不到。此時就須要查看運行環境中有沒有這個bean,以便快速排除出該問題的具體緣由。

  3.3.1 集成Actuator

    (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 便可

  3.3.2 坑之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信息就會生效啦

 

4 配置文件

  參考博文

5 多環境配置

  參考博文

 

 

相關文章
相關標籤/搜索