你想像Spring Cloud那样给开发者暴露你组件的配置吗?现在花五分钟来实现这样的效果吧!
新建项目
引入了依赖web。
CustomProperties
然后我们新建一个properties类:
@ConfigurationProperties(prefix = "importsource.mail")
@Data
public class CustomProperties {
private String password;
}
Configuration
然后新建一个configuration类:
@Configuration
@EnableConfigurationProperties(CustomProperties.class)
public class CustomAutoConfiguration {
@Bean
Person person(CustomProperties properties){
return new Person(properties);
}
}
class Person{
private CustomProperties properties;
Person(CustomProperties properties) {
this.properties=properties;
System.out.println(properties);
}
}
现在开始演示效果。
演示效果
然后在application.properties中加入配置:
importsource.mail.password=importsource
main代码:
@SpringBootApplication
public class CustomPropertiesApplication {
public static void main(String[] args) {
SpringApplication.run(CustomPropertiesApplication.class, args);
}
}
然后启动应用:
发现自定义属性已经生效。
AutoConfiguration
这里我们只是在一个项目中编写的。如果你开发的是单独的jar包,然后供其他人使用,那么你只需要在resources目录下,添加META-INF目录,然后新建文件spring.factories如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.importsource.spring.boot.CustomAutoConfiguration
这样我们配置的configuration就会自动被加载。为什么这么做呢?因为spring默认无法发现其他jar包中的配置并加载进来。所以只能通过这样的方式才能让配置加载进来。有关自动配置的请移步:像Spring Boot那样创建一个你自己的Starter了解更多。
本文分享自 ImportSource 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!