0

我对挂毯比较陌生。在挂毯项目中,这种情况

参数在X.properties文件中,例如

SomeService.urlDoOnething=http://etc/etc1
SomeService.urlDoOtherthing=http://etc/etc2

1.java

@Inject
@Value("SomeService.urlDoOnething")
private String SomeServiceurlDoOnething
@Inject
@Value("SomeService.urlDoOtherthing")
private String SomeServiceurlDoOtherthing

2.java

request = new ClientRequest(SomeServiceurlDoOnething); ....

我必须实现 SomeService[N].url*thing 参数。用户可以从组合框中选择服务(也在思考如何优雅地实现组合框)。

由于我不太了解挂毯并且搜索文档/谷歌还没有太大帮助..也许我可以在这里找到很好的建议 - 我怎样才能以最优雅/最少的编码方式做到这一点?

4

1 回答 1

2

我不确定我是否完全理解您的问题,您能否进一步解释这部分:

我必须实现 SomeService[N].url*thing 参数。用户可以从组合框中选择服务(也在思考如何优雅地实现组合框)。

我想我确实理解的是,您的问题有两个阶段:

  1. 如何摄取属性文件
  2. 如何通过注入访问键/值对

解决1

将以下内容添加到您的模块 (AppModule.java):

public void contributeSymbolSource(OrderedConfiguration<SymbolProvider> providers)
{
    providers.add("ExtraConfiguration", new ClasspathResourceSymbolProvider("extra.properties"), "after:SystemProperties", "before:ApplicationDefaults");
}

解决2

在您的 Page.java 中,使用@Symbol而不是@Value

@Inject
@Symbol("SomeService.urlDoOnething")
private String urlDoOnething;
于 2012-06-19T23:58:52.887 回答