java owner是什么意思_Java EE 应用配置场景隔离方案——Aeonbits Owner

每个(几乎所有)Java EE 应用都需要参数配置——本地、测试或者产品,这是常见且合理的事情;但是,如何轻松地维护这些配置以及如何无缝地处理随着应用物理环境的迁移引起的配置参数的变更?这是很值得思考的问题。

似乎已经有许多方法可以解决以上的需求,那么在本文中,我将把众多基于CDI配置方案中的一种,Owner ,介绍给大家。

通常在一个系统中使用properties配置有这样几种操作:

硬编码式的属性配置(通常新手程序员会这样做,好一点的方式是将其处理为常量属性)

配置文件放置于war中(各种配置在build过程中被引入,这样是不可取的,因为同样配置不可能满足不一样的宿主环境)

配置文件放置于配置服务系统(配置文件从war中独立出来并且据不同宿主环境而变)

以上第3种应该即是配置方式进化后的产物,从配置服务系统拉取配置的动作依然不能少,很多时候可能需要编写自定义逻辑拉取并使用配置属性:

你需要自己管理属性注入

你需要使用具有灵活配置管理机制的spring框架,但能保证每次都仅仅通过spring管理获取配置文件吗?怕是不尽然

下面,进入编程正题!

前置条件

你需要具备以下环境完成整个编写测试过程

实现

定义一个接口

@HotReload

@Sources({

"classpath:my-app.properties","http://static.edgar.cc/api/contrast_code_zh_CN.properties", "classpath:my-app.properties" })

public interface ApplicationConfig extends Accessible {

@DefaultValue("40")

@Key("app.timeout")

int getInitialTimeout();

}

使用

public static void main(String[] args) {

ApplicationConfig applicationConfig = ConfigFactory.create(ApplicationConfig.class);

System.out.println(applicationConfig.getInitialTimeout());

}

属性文件位置查找机制:依次查找my-app.properties,如果找到一个文件则停止查找。

特点

多配置文件路径

CDI Injection — Java EE based CDI injection using @Named and *@Inject *annotation

默认值 — 你可以用 @DefaultValue简单地配置默认值

热重载 — 你可以通过@HotReload快速地定义配置文件热重载间隔时间

如果需要,你可以找到更多的有效注解

资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值