当前位置:  开发笔记 > 编程语言 > 正文

Java相当于app.config?

如何解决《Java相当于app.config?》经验,为你挑选了2个好方法。

是否有一个Java等同于.NET的App.Config?

如果没有,是否有标准的方法来保持应用程序设置,以便在分发应用程序后可以更改它们?



1> Powerlord..:

对于WebApps,web.xml可用于存储应用程序设置.

除此之外,您可以使用Properties类来读取和写入属性文件.

您可能还想查看Preferences类,该类用于读取和写入系统和用户首选项.它是一个抽象类,但您可以使用userNodeForPackage(ClassName.class)和获取适当的对象systemNodeForPackage(ClassName.class).



2> Pursuit..:

将@ Powerlord的建议(+1)Properties用于示例代码:

public class SomeClass {
    public static void main(String[] args){
        String dbUrl = "";
        String dbLogin = "";
        String dbPassword = "";     
        if (args.length<3) {
            //If no inputs passed in, look for a configuration file
            URL configFile = SomeClass.class.getClass().getResource("/Configuration.cnf");
            try {
                InputStream configFileStream = configFile.openStream();
                Properties p = new Properties();
                p.load(configFileStream);
                configFileStream.close();

                dbUrl      = (String)p.get("dbUrl");
                dbLogin    = (String)p.get("dbUser");
                dbPassword = (String)p.get("dbPassword");               
            } catch (Exception e) {  //IO or NullPointer exceptions possible in block above
                System.out.println("Useful message");
                System.exit(1);
            }
        } else {
            //Read required inputs from "args"
            dbUrl      = args[0];
            dbLogin    = args[1];
            dbPassword = args[2];           
        }
        //Input checking one three items here
        //Real work here.
    }
}

然后,在容器的根目录(例如jar文件的顶部)放置一个Configuration.cnf包含以下内容的文件:

#Comments describing the file
#more comments
dbUser=username
dbPassword=password
dbUrl=jdbc\:mysql\://servername/databasename

这种感觉并不完美(我有兴趣听到改进),但足以满足我目前的需求.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有