作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望能够(用 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);
}
}
}
并使其按预期工作。也就是说,我唯一需要根据配置初始化字段的是添加一些注释、实现接口(interface)并可能进行单个函数调用(但希望没有它)。
我确信这在理论上是可行的,问题是是否存在支持它的现有库/框架/附加组件/thingie。 (也许 Apache commons.configuration 不知何故?以前没有使用过它。)
最佳答案
你能做的就是使用Spring 3.0 EL。可以找到一个示例 here ,但基本上可以归结为您可以执行以下操作:
@Value("#{systemProperties.databaseName}")
public void setDatabaseName(String dbName) { ... }
并且您的属性将被自动设置。这适用于 setter 和属性。
关于java - 如何在不添加任何代码的情况下使类可配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14622549/
我是一名优秀的程序员,十分优秀!