spring boot 知识点
1.@import的四种用法?
1.导入jar包中的bean类
2.导入配置类中的bean
3.导入improtSelector的实现类,实现条件导入
4.导入ImportBeanDefinitionRegistrar实现类
@EnableAutoConfiguration中使用的是第三种方式:@Import(AutoConfigurationImportSelector.class)
2.spring boot的事件监听实现?
SpringBoot 在项目启动时,会对几个监听器进行回调,我们可以实现这些监听器接口,在项目启动时完成一些操作。
-
ApplicationContextInitializer、
-
SpringApplicationRunListener、
-
CommandLineRunner、
-
ApplicationRunner
通过实现这四个接口的方法,我们就可以在项目启动时进行数据的监听或写入等操作
其中:CommandLineRunner和 ApplicationRunner 在实现抽象方法后就可以自动加载
ApplicationContextInitializer则需要在配置文件中将加载监听器配置为自己重写的类
要注意的是SpringApplicationRunListener的使用要添加构造器
3.spring boot的监听器
actuator:spring提供的监听器,导入坐标后会在项目启动时自动加载,使用时访问控制台输出的相应地址即可看到项目数据
可以通过配置选择暴露更多的endpoint
management.endpoints.web.exposure.include=*
2.图形化监视器 Spring Boot Admin
SpringBoot Admin 有两个角色,客户端(Client)和服务端(Server),需要创建一个客户端模块来进行监视。
被监视项目:
创建 admin-server 模块
导入依赖坐标 admin-starter-server
在引导类上启用监控功能@EnableAdminServer
admin-client客户端:
①创建 admin-client 模块
②导入依赖坐标 admin-starter-client
配置相关信息:server地址等
spring.boot.admin.client.url=http://localhost:9000
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
项目启动后,访问url即可
3.SpringBoot部署
通过maven工具直接打包为jar包的情况下,可以直接运行
打war包:
需要在启动类实现SpringBootServletInitializer接口
重写方法
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpringbootDeployApplication.class);
}
可以通过pom文件中的finalname来修改打包的war名
<build>
<finalName>springboot</finalName>
</build>