在实际开发中,为了方便我们常常会考虑把配置文件的某一类配置映射到配置类上,方便spring容器加载,实现方法如下:
1. 书写配置文件信息:书写某一类特定字段开头的配置信息,例如在yml配置文件中可以用缩进的第一个字段,properties也可以使用第一个字段来标识
2. 映射到配置文件类:接下来,在相应的映射类上,使用@ConfigurationProperties对配置信息进行映射,如下:
映射之后,配置文件以elasticsearch开头的配置都会被映射到响应的配置文件类的响应字段上。
3. 使用配置类配置自己的自动配置:springboot中标示某一个类为自动加载的配置类可以使用spring.factories,位置在resources文件夹下的META-INF下,注意resources文件夹需要设置为Resources Root,spring.factories中的自动加载的配置如下:
当前我的项目配置了两个自定义的自动配置类,其中ElasticsearchAutoConfig就是我需要自定义的配置类,被自定义加载的配置类会显示一个小树叶,如下所示:
上文提到的配置文件类在这里就可以通过注入的方式拿到配置文件中的信息,通过@EnableConfigurationProperties(ElasticsearchProperties.class),其中@ConditionalOnProperty来控制当前配置类是否有效,配置完之后,在spring容器中奇偶有这个配置类啦。
4. 使用我们的自定义配置类:在我们需要使用这个配置类的时候,就可以通过注入使用啦: