java-从使用中的应用读取spring属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-从使用中的应用读取spring属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1695字,纯文字阅读大概需要3分钟。
内容图文
![java-从使用中的应用读取spring属性](/upload/InfoBanner/zyjiaocheng/669/79e05e20794a497fabfa031078ddd66e.jpg)
我正在开发一个Java库/程序包,它打算由Spring Boot应用程序以jar形式使用.
主驱动程序类依赖于applicaton.properties中存在的一组道具,并在存储库中定义其自己的集合.
但是,我希望这些属性可以通过使用应用程序进行配置.什么是正确的结构呢?
例如,在项目中我有一个文件
public class Properties {
private int maxConnectingCount;
private int maxIdleCount;
// .. other properties read from application.properties
}
主驱动程序类如下所示:
public class LibraryDriver {
@Autowired
private Properties props
// do stuff with these props
}
我如何才能使使用中的应用程序可以覆盖这些属性
解决方法:
我通常会在以下情况下执行以下操作:
public class Properties {
private int maxConnectingCount;
private int maxIdleCount;
public Properties(String maxConnectingCount, String maxIdleCount) {
this.maxConnectingCount = maxConnectingCount;
this.maxIdleCount = maxIdleCount;
}
}
然后创建如下所示的bean:
@Configuration
public class LibraryDriverConfiguration {
@Value("${maxConnectingCount}")
private int maxConnectingCount;
@Value("${maxIdleCount}")
private int maxIdleCount;
@Bean
LibraryDriver libraryDriver() {
return new LibraryDriver(new Properties(maxConnectingCount, maxIdleCount));
}
我喜欢这种方法,因为它通过定义不同的构造函数,使您的属性具有合理的默认值.
另一种选择是创建一个Property bean,然后将其自动连接到LibraryDriver.就像是:
@Configuration
public class PropertiesConfiguration {
@Value("${maxConnectingCount}")
private int maxConnectingCount;
@Value("${maxIdleCount}")
private int maxIdleCount;
@Bean
Properties properties() {
return new Properties(maxConnectingCount, maxIdleCount);
}
}
接着:
@Component
public class LibraryDriver {
private final Properties properties;
@Autowired
public LibraryDriver(Properties properties) {
this.properties = properties;
}
}
内容总结
以上是互联网集市为您收集整理的java-从使用中的应用读取spring属性全部内容,希望文章能够帮你解决java-从使用中的应用读取spring属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。