1

次のようなものを(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);
        }
    }
}

そしてそれが期待通りに機能するために。つまり、構成に基づいてフィールドを初期化する必要があるのは、アノテーションを追加し、インターフェイスを実装し、場合によっては単一の関数呼び出しを行うことだけです(ただし、それがない場合は可能です)。

これは理論的には実行可能だと確信しています。問題は、それを可能にする既存のライブラリ/フレームワーク/アドオン/thingieがあるかどうかです。(たぶん、Apache commons.configurationはどういうわけか?これまでに使用したことがありません。)

4

1 に答える 1

0

できることは、Spring3.0ELを使用することです。例はここにありますが、基本的には、次のことができるということです。

@Value("#{systemProperties.databaseName}")
public void setDatabaseName(String dbName) { ... }

そして、あなたのプロパティは自動的に設定されます。これは、セッターとプロパティで機能します。

于 2013-01-31T09:46:04.587 に答える