Bagaimana untuk menggunakan kelas Properties di Java?
pengenalan
Apabila kami bekerja pada aplikasi Java, adalah perkara biasa bahawa kami perlu bekerja dengan beberapa konfigurasi, contohnya, URL pangkalan data, port pelayan, antara lain. Daripada mengekodkan tetapan ini terus ke dalam kod, kami berminat untuk mendapatkannya dari suatu tempat di luar kod, seperti fail sifat. Atau malah boleh menyimpan konfigurasi pada masa jalan untuk membacanya kemudian.
Dalam mana-mana kes ini, kami boleh membangunkan penyelesaian kami sendiri untuk senario tertentu, contohnya, mencipta fail teks dan dalam baris pertama menyimpan URL pangkalan data, di baris kedua port pelayan, dsb. Tetapi ini boleh membosankan dan terdedah kepada ralat, jadi penyelesaian yang lebih teguh dan berskala diperlukan. Untuk jenis kes ini, Java memberikan kami penyelesaian yang sangat mudah dan cekap untuk digunakan, kelas Properties.
Apakah kelas Properties?
Properties ialah kelas yang terdapat dalam pakej java.util yang membolehkan kami menyimpan konfigurasi buat sementara waktu dalam ingatan dan secara berterusan dalam fail sifat, jadi kami kemudian boleh membacanya dan menggunakannya dalam aplikasi kami. Dengan mencipta tika kelas Properties, anda mendapat objek yang berkelakuan seperti kamus, di mana setiap konfigurasi disimpan sebagai pasangan nilai kunci.
Menggunakan kelas Properties
Untuk bermula, tika kelas Properties mesti dibuat.
Properties props = new Properties();
Dengan mewarisi daripada kelas HashTable (yang seterusnya mewarisi daripada Kamus), dalam kelas Properties kita dapat melihat bahawa ia mempunyai kaedah jenis Objek, sedangkan nilai sebenarnya dijangkakan sebagai rentetan aksara atau String, dan bukan , tidak perlu menghantar String setiap kali anda bekerja dengan nilai. Dengan cara ini, walaupun terdapat kaedah lazim peta dalam contoh, dalam kebanyakan kes, ia tidak perlu digunakan. Sebagai contoh, daripada menggunakan get(kunci objek) anda boleh menggunakan getProperty(kunci rentetan).
Tentukan sifat
Untuk menentukan harta, kaedah setProperty(Kunci rentetan, nilai rentetan) digunakan, seperti yang ditunjukkan oleh namanya, kaedah ini menerima dua parameter, kunci (bagaimana anda ingin memanggil harta itu) dan nilai (nilai harta benda ), memandangkan kedua-dua parameter sentiasa dijangka daripada jenis String.
Properties props = new Properties(); props.setProperty("DB_HOST", "localhost"); props.setProperty("DB_PORT", "3306"); props.setProperty("DB_USER", "root"); props.setProperty("DB_PASS", "p4ssw0rd");
Dapatkan hartanah
Untuk mendapatkan harta anda boleh menggunakan kaedah getProperty(String key), yang menerima sebagai parameter kunci harta yang anda ingin perolehi Jika harta itu tidak wujud, null akan dikembalikan.
Properties props = new Properties();
Untuk mengelak daripada mendapatkan null sekiranya sifat tidak wujud, anda boleh menggunakan kaedah getProperty(String key, String defaultValue), yang menerima nilai lalai sebagai parameter kedua.
Properties props = new Properties(); props.setProperty("DB_HOST", "localhost"); props.setProperty("DB_PORT", "3306"); props.setProperty("DB_USER", "root"); props.setProperty("DB_PASS", "p4ssw0rd");
Lelaran ke atas sifat
Memandangkan ia adalah objek jenis peta (walaupun tidak disyorkan untuk menggunakan kaedah HashTable), ia mempunyai kaedah entrySet(), tetapi seperti yang anda lihat ia adalah jenis Objek, alternatif untuk mengulangi semua sifat ialah untuk menggunakan kaedah stringPropertyNames(), yang mengembalikan satu set rentetan aksara dengan semua kunci sifat (nilai yang dikembalikan tidak dalam susunan tertentu).
var API_URL = props.getProperty("API_URL"); System.out.println(API_URL); // Output null
Cara yang lebih pantas untuk memaparkan semua sifat adalah dengan menggunakan kaedah senarai(PrintStream keluar), yang mencetak semua sifat kepada aliran keluaran yang diluluskan sebagai parameter, contohnya System.out.
var API_URL = props.getProperty("API_URL", "http://api.example.com"); System.out.println(API_URL); // Output http://api.example.com
Simpan sifat ke fail
Properties menyediakan kaedah store() dan storeToXML() supaya sifat boleh disimpan dalam format properties (key=value) dan dalam format XML (ini boleh berguna jika sifat akan digunakan dalam persekitaran yang berbeza) masing-masing. Jangan gunakan kaedah save() kerana ia sudah usang dan penggunaannya tidak disyorkan, kerana ia tidak membuang pengecualian sekiranya ralat berlaku.
Sebelum menyimpan sifat ke fail, kita boleh melakukan perkara berikut untuk mengesahkan dengan konsol apa yang sebenarnya disimpan menggunakan kaedah store() dan System.out, adalah penting untuk mengawal pengecualian yang dilemparkan.
for (String prop : props.stringPropertyNames()) { System.out.println(prop + " = " + props.getProperty(prop)); } // Output DB_PORT = 3306 DB_PASS = p4ssw0rd DB_USER = root DB_HOST = localhost
Menganalisis keputusan, anda boleh melihat bahawa dalam baris pertama ulasan yang diluluskan sebagai hujah kedua disimpan (tidak kira jika ia adalah rentetan kosong, jika ia nol ia tidak dicetak), dalam baris kedua ia disimpan tarikh dan masa di mana sifat disimpan, dan bermula dari baris ketiga sifat disimpan dalam format key=value.
Jika kaedah storeToXML() digunakan, fail dengan kandungan berikut akan diperoleh:
props.list(System.out); // Output -- listing properties -- DB_PORT=3306 DB_PASS=p4ssw0rd DB_USER=root DB_HOST=localhost
Untuk menyimpan sifat dalam fail yang dipanggil db.properties anda boleh melakukan perkara berikut:
props.store(System.out, "Database Configuration"); // Output #Database Configuration #Thu Oct 10 11:06:04 CST 2024 DB_HOST=localhost DB_PASS=p4ssw0rd DB_PORT=3306 DB_USER=root
Setelah dilaksanakan, dan jika tiada pengecualian dilemparkan, anda akan melihat bahawa fail dengan nama db.properties telah dibuat dalam direktori tempat program itu dilaksanakan, dengan kandungan berikut:
props.storeToXML(System.out, "Database Configuration"); // Output <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>Database Configuration</comment> <entry key="DB_PORT">3306</entry> <entry key="DB_PASS">p4ssw0rd</entry> <entry key="DB_USER">root</entry> <entry key="DB_HOST">localhost</entry> </properties>
Untuk menyimpan sifat dalam format XML, cuma tukar kaedah store() kepada storeToXML().
Properties props = new Properties();
Muatkan sifat daripada fail
Andaikan sesetengah harta telah diubah suai atau yang baharu ditambah dalam fail db.properties atau db.properties.xml, untuk memuatkan sifat daripada salah satu daripada dua fail, sama ada dalam properties atau XML, kaedah load() dan loadFromXML() boleh digunakan masing-masing. Adalah penting untuk mengawal pengecualian yang dilemparkan sekiranya fail tidak wujud atau tidak boleh dibaca.
Properties props = new Properties(); props.setProperty("DB_HOST", "localhost"); props.setProperty("DB_PORT", "3306"); props.setProperty("DB_USER", "root"); props.setProperty("DB_PASS", "p4ssw0rd");
var API_URL = props.getProperty("API_URL"); System.out.println(API_URL); // Output null
Setelah sifat dimuatkan, ia boleh dipaparkan dalam konsol untuk mengesahkan bahawa ia telah dimuatkan dengan betul.
var API_URL = props.getProperty("API_URL", "http://api.example.com"); System.out.println(API_URL); // Output http://api.example.com
Kesimpulan
Seperti yang telah kita lihat, kelas Properties membolehkan kami bekerja dengan fail harta atau konfigurasi dengan cara yang cekap dan mudah, untuk menyimpan dan membaca sifat, yang menarik untuk diketahui dan digunakan dalam aplikasi Java kami.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan kelas Properties di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Penyelesaian masalah dan penyelesaian kepada perisian keselamatan syarikat yang menyebabkan beberapa aplikasi tidak berfungsi dengan baik. Banyak syarikat akan menggunakan perisian keselamatan untuk memastikan keselamatan rangkaian dalaman. …

Penyelesaian untuk menukar nama kepada nombor untuk melaksanakan penyortiran dalam banyak senario aplikasi, pengguna mungkin perlu menyusun kumpulan, terutama dalam satu ...

Pemprosesan pemetaan medan dalam dok sistem sering menemui masalah yang sukar ketika melaksanakan sistem dok: bagaimana untuk memetakan medan antara muka sistem dengan berkesan ...

Apabila menggunakan Mybatis-Plus atau Rangka Kerja ORM yang lain untuk operasi pangkalan data, sering diperlukan untuk membina syarat pertanyaan berdasarkan nama atribut kelas entiti. Sekiranya anda secara manual setiap kali ...

Mula musim bunga menggunakan versi IntelliJideaultimate ...

Penukaran objek dan tatasusunan Java: Perbincangan mendalam tentang risiko dan kaedah penukaran jenis cast yang betul Banyak pemula Java akan menemui penukaran objek ke dalam array ...

Penjelasan terperinci mengenai reka bentuk jadual SKU dan SPU di platform e-dagang Artikel ini akan membincangkan isu reka bentuk pangkalan data SKU dan SPU dalam platform e-dagang, terutamanya bagaimana menangani jualan yang ditentukan pengguna ...

Bagaimanakah penyelesaian caching Redis menyedari keperluan senarai kedudukan produk? Semasa proses pembangunan, kita sering perlu menangani keperluan kedudukan, seperti memaparkan ...
