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文件

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xunyji</groupId>
<artifactId>chapter0101</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>chapter0101</name>
<description>Demo project for Spring Boot</description> <properties>
<java.version>1.8</java.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </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 多环境配置

  参考博文

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

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

    简介 Ganglia可以监控分布式集群中硬件资源的使用情况,例如CPU,内存,网络等资源.通过Ganglia可以监控Hadoop集群在运行过程中对集群资源的调度,作为简单地运维参考. 环境搭建流程 1 ...

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

    非常感谢博客园的各位,按照你们的博文,还有利用百度和谷歌逐渐建立了android的开发环境,只是给自己备份参考查看,看过的人可以忽略这篇文章. 本文章大部分参考了:http://www.cnblogs ...

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

    Hive产生背景 1)MapReduce的编程不便,需通过Java语言等编写程序 2) HDFS上的文缺失Schema(在数据库中的表名列名等),方便开发者通过SQL的方式处理结构化的数据,而不需要J ...

  4. Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)

    系统:Centos 7,内核版本3.10 本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件. 一.宿主机准备工作 0.宿主机(Centos7 ...

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

    使用PHPWAMP8.8.8.8IN纯绿色集成环境搭建php网站很方便,哪怕你系统没安装vc.系统dll丢失或者损坏的时候,phpwamp也可以正常启动,是个很强大的php套件. php环境搭建,支持 ...

  6. 环境搭建基础知识2(sublime text3中配置verilog语法高亮)

    需求说明:Verilog设计 内容       :verilog开发环境搭建 来自       :时间的诗 1 软件下载 1.1 官方下载 地址http://www.sublimetext.com/3 ...

  7. Linux下环境搭建(一)——java、tomcat配置

    通过2个周末小憩的时间,终究是把linux环境下的jenkins+gitlab+jmeter框架给弄好了.jenkins的配置系列文章,可以翻看我以前的博文.此次,就将在linux下搭建环境的过程以博 ...

  8. Hadoop环境搭建|第四篇:hive环境搭建

    一.环境搭建 注意:hive版本不能太高,否则会出现兼容性问题 1.1.上传hive安装包 创建文件夹用于存放hive文件命令:mkdir hive 1.2.解压hive安装包 命令:tar -zxv ...

  9. Hadoop环境搭建|第三篇:spark环境搭建

    一.环境搭建 1.1.上传spark安装包 创建文件夹用于存放spark安装文件命令:mkdir spark 1.2.解压spark安装包 命令:tar -zxvf spark-2.1.0-bin-h ...

随机推荐

  1. 判断一棵树是否为二叉搜索树(二叉排序树) python

    输入一棵树,判断这棵树是否为二叉搜索树.首先要知道什么是排序二叉树,二叉排序树是这样定义的,二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的 ...

  2. 《FDTD electromagnetic field using MATLAB 》读书笔记001-差商种类

    有限差分就是用差商代替微商,有3钟: 1.向前差商 2.向后差商 3.中心差商 上面三张途中虚线就是函数在x的精确微商(偏导数),直线就是用来代替精确 微商的差商格式.

  3. CMS初步认识

    一CMS本质 [1]基本思想是:分离内容的管理和设计,页面显示的风格和框架存储在模板里.至于页面显示的内容存储在数据库中或一个独立的文件中.当一个用户请求页面时,各部分联合生成一个标准的 HTML 页 ...

  4. C# 4.0中的动态类型和动态编程

    # 4.0的主题就是动态编程(Dynamic Programming).虽然C#仍然是一种静态语言,但是对象的意义开始变得越来越“动态”.它们的结构和行为无法通过静态类型来捕获,或者至少编译器在编译程 ...

  5. ambassador 学习九 多ambassador部署说明

    目前官方稳文档没有写,但是demo 里面有,所以就整理出来,其实目前demo里面的 多实例部署用了多个服务的service(使用nodeport 暴露地址,具体使用就是制定ambassador 实例的 ...

  6. springmvc 使用Jackson的配置

    <!--start:使用Jackson 1.x的配置,需要导入的jar包:jackson-core-lpgl-xxx.jar.jackson-mapper-lgpl-xxx.jar --> ...

  7. 基数排序算法-python实现

    #-*- coding: UTF-8 -*- import numpy as np def RadixSort(a): i = 0 #初始为个位排序 n = 1 #最小的位数置为1(包含0) max ...

  8. 峰Spring4学习(7)spring对JDBC的支持

    第一节: 工程结构: 1)student.java: package com.cy.model; public class Student { private int id; private Stri ...

  9. php删除制定文件及文件夹

    php遍历一个文件夹内的所有文件和文件夹,并删除所有文件夹和子文件夹下的所有文件的代码,通过递归方式实现达到清空一个目录的效果,代码简单实用. 用到的函数: scandir($path) 遍历一个文件 ...

  10. 本地通过源码方式启动solr

      首先,下载solr5.5.0源码,http://apache.fayea.com/lucene/solr/5.5.0/solr-5.5.0-src.tgz   解压完成后,分为几个目录,然而sol ...