سؤال

هل يوجد Java مكافئ لـ App.Config الخاص بـ .NET؟

إذا لم يكن الأمر كذلك، فهل هناك طريقة قياسية للاحتفاظ بإعدادات التطبيق لديك، بحيث يمكن تغييرها بعد توزيع التطبيق؟

هل كانت مفيدة؟

المحلول

بالنسبة إلى WebApps، يمكن استخدام web.xml لتخزين إعدادات التطبيق.

بخلاف ذلك، يمكنك استخدام ملكيات فئة لقراءة وكتابة ملفات الخصائص.

قد ترغب أيضًا في إلقاء نظرة على التفضيلات فئة، والتي تستخدم لقراءة وكتابة تفضيلات النظام والمستخدم.إنها فئة مجردة، ولكن يمكنك الحصول على الكائنات المناسبة باستخدام userNodeForPackage(ClassName.class) و systemNodeForPackage(ClassName.class).

نصائح أخرى

لوضع اقتراح @ 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.
    }
}

وبعد ذلك، في جذر الحاوية (أعلى مثل ملف جرة) وضع Configuration.cnf ملف مع المحتوى التالي:

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

وهذا يشعر يست مثالية (فما استقاموا لكم فاستقيموا تكون مهتمة لسماع التحسينات)، ولكن جيدة بما فيه الكفاية لاحتياجاتي الحالية.

والطريقة البسيطة هي لمجرد أن يكون ملف خصائص، على سبيل المثال، myapp.properties، مع كافة الإعدادات الخاصة بك في. انها ليست وسيلة متقدمة جدا للقيام الإعدادات ولكن يكفي، أو يمكن أن يكون الإعداد XML استنادا الخاص بك، أو الحصول عليها من قاعدة بيانات، وما إلى ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top