SpringBoot31 重识Spring01-环境搭建、Actuator监控、属性配置、多环境配置

1 前言

1.1 学习阶段说明  

  从2016年9月开始接触IT,学习经历主要分为以下三个阶段

  1.1.1 入门阶段

    从最基础的前端技术HTML、JavaScript、CSS开始入门,再到后端技术Java基础、MySQL数据库基础知识、JDBC、Servclet、JSP。利用这些简单技术实现了从前端、后台、到数据库单表的CRUD操作。

  1.1.2 进阶阶段

    刚入行时常常听别人说起XXX框架好NB,可以干XXX。我接触了第一个框架Spring,紧接着MyBatis;再到前端框架Angular2、Vue。各种前后端框架的学习让我从入门时对编程的枯燥感觉逐渐消退,因为站在巨人的肩膀上真的可以省下好多经历和时间,前提是你从基础一步步走过来。

  1.1.3 项目阶段

    研一暑假开始跟着团队老师进行项目开发,虽然开始只是做一些边角料的事情,但是还是觉得收获颇丰。刚开始都是模仿别人依葫芦画瓢进行业务实现,当时觉得这真的好LOW,好LOW,好LOW。现在回想起来,觉得当时的想法是多么的幼稚可笑,总想着一嘴就吃个胖子,一步就登上山顶,简直太愚蠢啦。还好,当时没有放弃,慢慢跟着项目组老师一边学习、一边摸索,到如今算是一个初级程序员吧。

  随着,SpringBoot、SpringCloud等微服务相关技术的出现,逐渐发现Spring大家族知识真的好强大,强大到没有一个Java程序员不知道它,不使用它。鉴于之前对Spring先关知识的不重视,所系现在决定重新学习一边Spring相关知识点来重识Spring。

  1.2 重识Spring系列说明

    本系列文章都是基于SpringBoot作为基础开发环境的;

    利用一个Maven项目来管理各个知识点对应的所有SpringBoot项目,参考博文

    思维导图忽略章节编号,重点在层次划分。

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 多环境配置

  参考博文

原文地址:https://www.cnblogs.com/NeverCtrl-C/p/10662196.html

时间: 2024-11-07 20:44:47

SpringBoot31 重识Spring01-环境搭建、Actuator监控、属性配置、多环境配置的相关文章

PHP环境搭建:Windows7系统配置PHP+Apache+MySQL环境教程

Win7系统下PHP.Apache.MySQL的环境搭建,是许多PHP初学者.甚至是有多年开发经验的PHP程序员都无法避免的一个环节.网络上关于WAMP环境配置的文章也不少,不过很多存在版本较老,或者解释不够清晰的问题. 最近将公司电脑的Win7版本从32位升级到64位,全盘清理,需要重新配置环境,借此机会,将Win7下搭建PHP.Apache.MySQL环境的具体方法分享给锐想网的各位同学.本文对32位和64位win7系统都可用. 先列出本文使用的各种软件的版本: Apache 2.2.21

eclipse开发cocos2dx 3.2环境搭建之一: Android C\C++环境搭建(ndk r9d)

这几天有时间,琢磨一下cocos2dx.cocos2d家族其实挺庞大的,也有cocos2d-android这种可以直接用Java语言来开发的,但是cocos2d-android资料相对少一些,而且貌似都是几年前的.对比一下还是cocos2dx比较流行,有可以跨平台,而且既然要学就一起把c++学了. 这段时间已经用惯了idea,不太想换回去,但是查了查发现idea还不能做c++开发.国内倒是有家公司开发了一款idea的cocos插件,不过其实是cocos2dx-js,好像最新版的又加入了cocos

YARN环境搭建 之 二:CentOS7.0 JDK配置

Hadoop是Java写的,他无法使用Linux预安装的OpenJDK,因此安装hadoop前需要先安装JDK(1.6以上)   原材料:在Oracle官网下载的32位JDK:     说明: 1.CentOS 7.0系统现在只有64位的,但是,Hadoop一般支持32位的,在64位环境下有事会有Warning出现,避免真的有神马问题,选择i586的JDK(即32位的),当然,64位的CentOS 7 肯定是兼容32位JDK的,记住:64位系统肯定兼容32位的软件,32位系统不能兼容64位软件.

Ganglia环境搭建并监控Hadoop分布式集群

简介 Ganglia可以监控分布式集群中硬件资源的使用情况,例如CPU,内存,网络等资源.通过Ganglia可以监控Hadoop集群在运行过程中对集群资源的调度,作为简单地运维参考. 环境搭建流程 1.我们先在主机master01上面搭建好Ganglia环境 2.在master01主机上解压JDK和Hadoop到安装目录.修改配置文件 3.克隆出两台主机slave01,slave02并修改主机名和IP主机名映射.做免密码登录 4.启动Ganglia和Hadoop集群.实现wordcount实例

最新php环境搭建,2017年最新PHP环境搭建

使用PHPWAMP8.8.8.8IN纯绿色集成环境搭建php网站很方便,哪怕你系统没安装vc.系统dll丢失或者损坏的时候,phpwamp也可以正常启动,是个很强大的php套件. php环境搭建,支持win7.win10.支持iis.nginx.apache多版本共存. 工具/原料 PHPWAMP8.8.8.8IN最新版 win7或win10 方法/步骤 百度搜索"PHPWAMP"即可下载,建议到官方下载,版本会是最新的   下载后解压即可使用   如图,很强大的站点管理功能,很方便使

Spark环境搭建(四)-----------数据仓库Hive环境搭建

Hive产生背景 1)MapReduce的编程不便,需通过Java语言等编写程序 2) HDFS上的文缺失Schema(在数据库中的表名列名等),方便开发者通过SQL的方式处理结构化的数据,而不需要Java等编写程序 Hive是什么 1)facebook开源,最初为解决海量的结构化日志数据统计问题 2)构建中Hadoop上的数据仓库 3)Hive定义了一种SQL查询语言:HQL(类似SQl但又不完全相同) 4)通常进行离线处理(采用MapReduce) 5)多种不同的底层执行引擎(Hive on

Git环境搭建(后期会更新SVN环境搭建教程)

环境搭建是块头痛的问题,既然懂点前端技术,又要懂得点后端技术,今天小编就把自己的搭建经验,分享给大家,希望可以帮到大家, 后期的话还会更新SVN环境搭建 第一步:git fetch 获取最新的代码版本 git pull origin +要获取的远程分支 git merge+ 切换到主分支,然后填写要合并的分支 git reset -h 回退到某个代码版本 git log 查看相关的操作日志 git status 查看版本状态 git diff 比较文件修改了哪些内容 第二步:若新功能中在数据库有

[环境]搭建Node+NPM+Grunt+Ruby开发环境

序 最近尝试了一下CoffeeScript,和Sass,不得不说这两个搭配起来的确是不错的选择,熟悉以后基本上开发就比较快速了. 当然要开发这个首先需要搭建环境,这里就需要有Node.NPM.Grunt.Ruby. Node与NPM基本上是一套安装,有了Node环境后才能搭建后面的CoffeeScript环境:而Ruby是为了执行Sass编译命令所需要的环境,当然最后还有一个Grunt,这个是为了项目构建的方便,一体化构建,不用自己重复执行编译命令. Ruby Ruby,一种为简单快捷的面向对象

Android开发环境搭建日记和嵌入式Android开发环境初探

原文出处:www.cnblogs.com/chsry 非常感谢博客园的各位,按照你们的博文,还有利用百度和谷歌逐渐建立了android的开发环境,只是给自己备份参考查看,看过的人可以忽略这篇文章. 本文章大部分参考了:http://www.cnblogs.com/zoupeiyang/p/4034517.html  ,添加了我搭建时候遇到的问题和自己的解决方案,也基本备份了我当时自己的设置,以备日后查看. 本教程将分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK. 第二步:配