Condition是在Spring4.0增加的条件判断功能,通过这个功能可以实现选择性的创建Bean操作。
切换内置web服务器SpringBoot的web环境中默认使用tomcat作为内置服务器,其实SpringBoot提供了4中内置服务器供我们选择,我们回以很方便的进行切换。
切换web服务器,导入不同的坐标即可:
example:
// 引入jetty的依赖,注意 应先排除tomcat的依赖((@Enable*注解标签)) 再引入jetty标签 spring-boot-starter-jetty org.springframework.boot
SpringBoot中提供了很多Enable开头的注解,这些主解都是用于动态启用某些功能的。而其底层原理是使用@lmport注解导入一些配置类,实现Bean的动态加载。
@Enable*底层依赖于@import注解导入一些类,使用@import导入的类会被Spring加载到OC容器中。而@lmport提供4中用法:
- 导入Bean导入配置类导入importSelector实现类。一般用于加载配置文件中的类导入importBeanDefinitionRegistrar实现类
@EnableAutoConfiguration注解内部使用@import (AutoConfigurationimportselector.class)来加载配置类。
配置文件位置: meta-INF/spring.factories,该配置文件中定义了大量的配置类,当SpringBoot应用启动时,会自动加载这些配置类,初始化Bean
·并不是所有的Bean都会被初始化,在配置类中使用Condition来加载满足条件的Bean
SpringBoot的监听机制,其实是对Java提供的事件监听机制的封装。Java中的事件监听机制定义了以下几个角色:事件:Event,继承java.util.EventObject类的对象②事件源:Source,任意对象Object③监听器: Listener,实现java.util.EventListener接口的对象
SpringBoot在项目启动时,会对几个监听器进行回调,我们可以实现这些监听器接口,在项目启动时完成—些操作。
ApplicationContextlnitializer、SpringApplicationRunListener、CommandLineRunner、ApplicationRunneSpringBoot启动流程分析
启动流程:建议百度
SpringBoot监控概述SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、配置属性、日志信息等。
使用步骤:
- 导入依赖坐标
org.springframework.boot spring-boot-starter-actuator
- 访问http://localhost:8080/acruator
Note: https://www.json.cn/ 一个json代码自动格式化的网站
actuator开启所有endpoint:
# 开启健康检查的完整信息 management.endpoint.health.show-details=always # 将所有的监控endpoint暴露出来 management.endpoints.web.weposure.inculde=*SpringBoot 监控 - Spring Boot Admin
Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。
Spring Boot Admin有两个角色,客户端(Client)和服务端(Server)。
应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册
Spring Boot Admin Server的UI界面将Spring Boot Admin Client的ActuatorEndpoint上的一些监控信息。
使用步骤:
admin-server:
- 创建admin-server模块导入依赖坐标admin-starter-server在引导类上启用监控功能@EnableAdminServer
admin-client:
- 创建admin-client模块导入依赖坐标admin-starter-client配置相关信息:server地址等启动server和client服务,访问server
example地址配置:
# 执行admin,server地址 management.endpoint.health.show-details=always management.endpoints.web.exposure.include=*SpringBoot项目部署
SpringBoot项目开发完毕后,支持两种方式部署到服务器:
- jar包(官方推荐)war包



