从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信息就会生效啦