我希望能够用Java编写如下内容:
public class A implements MagicallyConfigurable {
@configuration_source_type{"xml"}
@configuration_dir{"some/rel/path/"}
/* or maybe some other annotations specifying a db-based configuration etc. */
int length = 4 /* some kind of default */;
char c = '*' /* some kind of default */;
@do_not_configure
String title;
A(String title) {
/* possibly, but hopefully no need to, something like:
configure();
call here. */
this.title = title;
}
void goForIt() {
System.out.println(title);
for(int i=0; i < length; i++) {
System.out.print(c);
}
}
}
并使其按预期工作。也就是说,基于配置初始化字段我唯一需要的是添加一些注释,实现一个接口并可能进行单个函数调用(但希望没有它)。
我确信这在理论上是可行的,问题在于是否存在启用它的现有库/框架/附加组件/东西。 (也许Apache commons.configuration以某种方式?以前没用过它。)
答案 0 :(得分:0)
你可以做的是使用Spring 3.0 EL。可以找到一个示例here,但它基本上归结为您可以执行以下操作:
@Value("#{systemProperties.databaseName}")
public void setDatabaseName(String dbName) { ... }
您的属性将自动设置。这将适用于setter和属性。