1. Spring Cloud介绍
(1)什么是Spring Cloud?
是一个服务治理平台,提供了一些服务框架,包含了:服务注册与发现、配置中心、消息中心、负载均衡、数据监控等等。
(2)Spring Cloud Config是什么?
配置管理工具,支付使用Git存储配置内存,支持应用配置的外部化村粗,支持客户端配置信息的刷新,加解密配置内容等。
(3)Spring Cloud Bus是什么?
时间、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
(4)Spring Cloud Netflix是什么?
针对多种Netflix组件提供的开发工具包,其中包括Eureka 、Hystrix 、Zuul 、Archaius等。
(5)Spring Cloud Stream是什么?
数据流操作开发包,封装了与Redis,Rabbit,Kafka等发送接收消息。
2.Spring Cloud与dubbo的区别
(1)Spring Cloud与Dubbo的区别是什么?
3.常见版本号说明
(1)软件中的版本号分别表示什么含义?
软件版本号:2.0.2.RELEASE
2: 主版本号。当功能模块有较大更新或者整体架构发生变化时,主版本号会更新
0:次版本号。次版本表示只是局部的一些变动。
2:修改版本号。一般是bug的修复或者是小的变动
RELEASE:希腊字母版本号。此版本号用于标注当前版本的软件处于哪个开发阶段。
(2)希腊字母版本号都有哪些?分别表示什么含义?
Base:设计阶段。只有相应的设计没有具体的功能实现。
Alpha:软件的初级版本。存在较多的Bug
Bate:表示相对alpha有了很多的进步,消除了严重的bug,还存在一些潜在的bug
Release:该版本表示最终版
4.Spring Cloud版本定义说明
(1)Spring Cloud版本号中的单词定义规则是什么?
采用伦敦的地铁站名称来作为版本号的命名,根据首字母的排序,字母顺序靠后的版本号越大。
(2)为什么Spring Cloud在定义版本时使用的是单词而非数字?
设计目的是为了更好的管理每个Spring Cloud的子项目的清单。避免子版本号与子项目的版本号混淆。
(3)在Spring Cloud版本中GA、PRE(M1,M2)、RC、SR分别表示什么含义?
5.SpringBoot回顾
(1)什么是Spring Boot?
Spring Boot是在Spring的基础上产生的,确切的说是在Spring4.0版本的基础之上,其中“Boot”的意思就是“引导”,意在简化开发模式,是开发者能够快速的开发出基于Spring的应用。Spring Boot含有一个内嵌的web容器。我们开发的web应用不需要作为war包部署到web容器中,而是作为一个jar包,在启动根据web服务器的配置进行加载。
(2)Spring Boot解决了什么?
1、spring Boot 使配置变简单
2、Spring Boot 使编码变简单
3、Spring Boot 使部署变简单
4、Spring Boot 使监控变简单(自带监控的变量)
6.SpringBoot快速构建项目
(1)快速构建Spring Boot项目的网址是什么?
https://projects.spring.io/spring-boot/
https://start.spring.io/ 构建 Spring Boot 的页面
(2)如何通过Spring官网快速构建Spring Boot项目?
1、会自动的帮助我们生成启动类
2、会自动生成存放静态资源的目录,还会生成全局配置文件
3、会自动生成测试代码,当然只是一个结构
4、Spring Boot官方推荐的Jdk版本为1.8或者更高
7.全局配置文件操作
(1)如何在Spring Boot的全局配置文件中修改内嵌容器的端口号?
server.port=8888
(2)如何在Spring Boot的全局配置文件中配置变量引用?
hello=bjsxt
msg=Hello World
h
e
l
l
o
@
V
a
l
u
e
(
"
{hello} @Value("
hello@Value("{msg}")
private String msg;
8.yml配置文件讲解
(1)什么是yml配置文件?
是Spring Boot 中新增的一种配置文件格式。
特点:具备天然的树状结构
(2)yml配置文件与properties配置文件的区别?
1、配置文件的扩展名有变化
2、配置文件中的语法有变化
(3)yml配置文件的语法要求是什么?
1、在properties文件中是以“.”进行分割,在yml中使用“:”进行分割
2、yml的数据格式和json的格式很像,都是K-V结构的。并且是通过“:”赋值
3、在yml中缩进一定不能使用TAB件,否则会报错
4、每个K的冒号后面一定要加一个空格
9.logback日志记录器讲解
(1)logback中的日志级别有哪些?
trace 、debug 、info 、warn 、error
10.SpringBoot配置文件-多环境配置
(1)在Spring Boot的多环境配置中,profile表示什么?
代表的就是一个环境变量
(2)在Spring Boot的多环境配置中,配置文件的命名格式是什么?
application-{profile}.properties
(3)在启动多环境配置项目的命令中,如何加载指定配置文件?
java -jar springboot-helloworld-0.0.1-SNAPSHOT.jar --spring.profiles.active=test|dev|prod
11.SpringBoot核心注解介绍
(1)@SpringBootApplication注解的作用是什么?
代表是SpringBoot 的启动类
(2)@SpringBootConfiguration注解的作用是什么?
通过bean对象来获取配置信息
(3)@Configuration注解的作用是什么?
通过对bean对象的操作替代spring中xml文件
(4)@EnableAutoConfiguration注解的作用是什么?
完成一些初始化环境的配置
(5)@ComponentScan注解的作用是什么?
来完成spring的组件扫描。替代之前我们在xml文件中配置组件扫描的配置<context:component-scan pacage=”…”>
(6)@RestController注解的作用是什么?
1、表示一个Controller
2、表示当前这个Controller下的所有的方法都会以json格式的数据响应
12.SpringBoot全局异常处理
(1)@ControllerAdvice+@ExceptionHandler注解处理异常基本原理是什么?
@ControllerAdvice
public class MyControllerAdvice {
@ResponseBody
@ExceptionHandler(value = java.lang.Exception.class)
public HashMap<Object, Object> myException(Exception ex){
HashMap<Object, Object> map = new HashMap<>();
map.put("code",500);
map.put("msg","出错了");
return map;
}
@ResponseBody
@ExceptionHandler(value = java.lang.NullPointerException.class)
public HashMap<Object, Object> myException2(Exception ex){
HashMap<Object, Object> map = new HashMap<>();
map.put("code", -500);
map.put("msg", "空指针异常");
return map;
}
@ResponseBody
@ExceptionHandler(value=com.bjsxt.springboothelloworld.exception.ApplicationException.class)
public Map<String, Object> myException3(Exception ex) {
Map<String, Object> map = new HashMap<>();
map.put("code", -800);
map.put("msg", ex.getMessage());
return map;
}
}
13.使用Actuator检查与监控
(1)什么是Actuator检查与监控?
用来检查springboot的健康状况
(2)如何在项目的全局配置文件中设置关闭安全限制?
在配置文件中添加management.security.enabled=false
14.SpringBootAdmin项目创建
(1)在搭建SpringBootAdmin服务端项目中,启动类上需要添加什么注解?
@EnableAdminServer
(2)在搭建客户端时,需要在全局配置文件中添加什么配置?
<dependency>
<groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>1.5.7</version>
</dependency>
15.SpringBootAdmin监控信息讲解
(1)管理页面中APPLICATIONS的作用是什么?
application视图下有个details。里面包含了很多监控信息
(2)管理页面中JOURNAL的作用是什么?
主要显示日志信息
(3)管理页面Details中都能看到哪些常用的监控信息?
当前应用:application–>up
磁盘空间:diskspace–>up
内存信息:memory
JVM信息:JVM