介绍
本篇内容主要讲解“java使用springboot-starter启动检查配置是否满足要求”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java使用springboot-starter启动检查配置是否满足要求”吧!
检查配置
主要有以下几个检测项:
1。环境变量的检查
2。java运行变量的检查
3。指定位置文件的检查
4。主机检查
运行启动
要想一启动程序就运行,我们自然而然就想到了springboot的启动项目,对,我们把这个也封装成一个起动器,这样一启动springboot应用,就可以检查各种条件了。
制作起动器
引入依赖:
<节>dependencies {implementation 才能平台(& # 39;org.springframework.boot: spring-boot-dependencies: 2.1.6.RELEASE& # 39;),, compile 组:,& # 39;org.springframework.boot& # 39;,,名字:,& # 39;spring-boot-autoconfigure& # 39;,,}节>
项目结构如下图所示
spring.factories:
<节>org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.platform.tools.starter.spring.boot.ToolAutoConfigurationorg.springframework.context.ApplicationContextInitializer=\ com.platform.tools.starter.spring.boot.ToolApplicationContextInitializer节>
ToolAutoConfiguration.java
<节>@Configurationpublic class ToolAutoConfiguration {}节>
ToolApplicationContextInitializer。java
<节><代码>公共类ToolApplicationContextInitializer实现ApplicationContextInitializer{代码> <代码>节>
代码> <代码>,代码,@Override > <代码>,,公共空间初始化(ConfigurableApplicationContext applicationContext){代码> <代码>,,,,System.out.println(“编写检查代码here"); 代码> <代码>,,}代码> <代码>}代码> <代码>
代码>
运行效果如下:
这样我们就做到了在项目一启动的时候就运行检测代码的效果
编写检查代码
如上所述有环境变量,文件等简单的校验,本文以阿波罗的检测为例写几个典型的获取配置的代码,下面的代码中包含判断文件是否存在,判断环境变量,判断系统变量
<节><代码>公共类InitCheck,{代码> <代码>部分>
代码> <代码>,,/* *操作系统类别:1是赢,2是其他*/代码> <代码>,,私人整数osType; 代码> <代码>
代码> <代码>,,/* *环境变量的地图*/代码> <代码>,,私人Map<字符串,String>envMap=System.getenv(); 代码> <代码>
代码> <代码>,代码,公共InitCheck(){> <代码>,,,,//获取操作系统类型代码> <代码>,,,,字符串osName=System.getProperty (“os.name"); 代码> <代码>,,,这。osType=osName.contains (“windows") ? 1:2; 代码> <代码>,代码,}> <代码>
代码> <代码>,/,/* * <代码> <代码>,,*对外提供的调用方法,在新完InitCheck之后,就调用这个方法代码> <代码>,,* 代码> <代码>,,* @return 代码> <代码>,,代码*/> <代码>,,公共布尔checkAll(){代码> <代码>,,,,代码> <代码>,,,代码,返回checkApollo(); > <代码>,代码,}> <代码>
代码> <代码>,/,/* * <代码> <代码>,,*检查阿波罗的配置是否正确代码> <代码>,,* @return 代码> <代码>,,代码*/> <代码>,,私人布尔checkApollo(){代码> <代码>,,,,//阿波罗主要是检查ENV有没有设置,而且只检查环境变量和文件代码> <代码>,,,,字符串env=envMap.get (“ENV"); 代码> <代码>,,,,布尔envFlag=env !=零,,! env.isEmpty(); 代码> <代码>,,,,字符串filePath=osType==1 ?“C:/opt/设置/server.properties":“/opt/设置/server.properties" 代码> <代码>,,,,布尔fileFlag=Files.exists (Paths.get (filePath)); 代码> <代码>,,,,布尔结果=envFlag | | fileFlag; 代码> <代码>,,,,如果结果(!){代码> <代码>,,,,,,System.out.printf(“请正确配置阿波罗,设置环境变量ENV=dev或者在文件% s中写入ENV=dev \ n", filePath); 代码> <代码>,,,代码,}> <代码>,,,代码,返回结果;> <代码>,代码,}> <代码>
代码> <代码>}代码>
运行效果如下图所示:
其他检查代码因不好脱敏,就先不发出来了,但思路都是一致的,大家也可以写一写尝试下