0

いくつかのルール(既存のいくつかのキーワードまたは正規表現)に従ってメッセージをフィルタリングするアプリがあります。これらのルールは、.properties ファイルに保存されます (永続的でなければならないため)。このファイルからデータを読み取る方法を理解しました。コードの一部は次のとおりです。

public class Config {

    private static final Config ourInstance = new Config();
    private static final CompositeConfiguration prop = new CompositeConfiguration();

    public static Config getInstance() {
        return ourInstance;
    }

    public Config(){
    }

    public synchronized void load() {
        try {
            prop.addConfiguration(new SystemConfiguration());

            System.out.println("Loading /rules.properties");
            final PropertiesConfiguration p = new PropertiesConfiguration();
            p.setPath("/home/mikhail/bzrrep/DLP/DLPServer/src/main/resources/rules.properties");
            p.load();
            prop.addConfiguration(p);

        } catch (ConfigurationException e) {
            e.printStackTrace();
        }

        final int processors = prop.getInt("server.processors", 1);

        // If you don't see this line - likely config name is wrong
        System.out.println("Using processors:" + processors);
    }

    public void setKeyword(String customerId, String keyword){            
    }    
    public void setRegexp(String customerId, String regexp)
    {}
}

ご覧のとおり、いくつかのプロパティに値を追加します。.properties ファイル自体は次のとおりです。

users = admin, root, guest
users.admin.keywords = admin
users.admin.regexps = test-5, test-7

users.root.keywords = root
users.root.regexps = *

users.guest.keywords = guest
users.guest.regexps = 

ユーザーがこの構成にキーワードと正規表現を追加するための GUI があります。では、メソッド setKeyword と setRegexp を実装する方法は?

4

1 に答える 1

1

私が見つけた最も簡単な方法は、プロパティの現在の値を String[] に読み取り、そこに新しい値を追加してプロパティを設定することです。 props.setProperty(fieldName, values);

于 2013-05-22T13:27:13.557 に答える