Jika beberapa parameter dalam proyek perlu sering dimodifikasi, atau mungkin perlu dimodifikasi nanti, maka yang terbaik adalah memasukkan parameter ini ke dalam file properti dan membaca konfigurasi di properti dalam kode sumber. Dengan cara ini, hanya file properti yang perlu dimodifikasi nanti, dan tidak perlu memodifikasi kode sumber, yang lebih nyaman. Ini juga dapat dilakukan di Spring, dan Spring memiliki dua cara untuk memuat file properti: berdasarkan metode XML dan berdasarkan metode anotasi . Berikut ini adalah dua metode.
1. Muat file properti melalui xml
Mari kita ambil Sumber Data Sedang Musim Semi sebagai contoh. Kami biasanya mengonfigurasi yang berikut dalam file beans.xml:
<!-com.mchange.v2.c3p0.compooledDataSource kelas ada di paket com.mchange.v2.c3p0 dari C3P0-0.9.5.1.Jar Paket-> <bean id = "DataSource"> <nama properti = "value" value = "com.mysql.jdbc.drbc.drc.drc.drc.drc.drc.drc.drow" value = "jdbc: mysql: // localhost: 3306/shop"/> <properti name = "user" value = "root"/> <properti name = "password" value = "root"/> </bean>
Sekarang jika kami ingin mengubah sumber data, kami harus memodifikasi kode sumber ini, tetapi jika kami menggunakan file properti, kami hanya perlu memodifikasi kode sumber, dan kami tidak peduli dengan kode sumber. Jadi bagaimana melakukannya?
Ada <context:property-placeholder location=""/> Tag di Spring, yang dapat digunakan untuk memuat file konfigurasi properti. Lokasi adalah jalur ke file konfigurasi. Kami sekarang membuat file conn.properties baru di bawah SRC dari direktori proyek, dan menulis konfigurasi sumber data di atas:
DataSource = com.mchange.v2.c3p0.compooledDataSource driverclass = com.mysql.jdbc.driver jdbcurl = jdbc/: mysql/: localhost/: 3306/shop user = root password = root = root = root = root = root
Sekarang Anda hanya perlu membuat modifikasi berikut dalam beans.xml:
<Konteks: Lokasi Pemegang Properti-Place = "ClassPath: Conn.Properties"/> <!-Memuat File Konfigurasi-> <!-com.mchange.v2.c3p0. Kelas com.v2.c3p0 Paket C3P0-0.9.5.1.1.jar-Paket COM.V2.C3P0 "OUSOCE"-Paket C3P0-0.9.5.1.1.jar-uce- uce " conn.properties at startup -> <name properti = "driverclass" value = "$ {driverclass}" /> <name properti = "jdbcurl" value = "$ {jdbcurl}" /> <nama properti = "jdbcurl" nilai User = "$ {jdbcurl}" /" /" /"name" a user = "$" $ " value = "$ {password}"/> </ bean> <context: properti-placeHolder location = ""/> tag juga dapat diganti dengan tag <Bean> berikut. Kami lebih akrab dengan tag <sean> dan lebih mudah dibaca: <!-setara dengan konfigurasi di atas, berikut ini lebih mudah dipahami-> <bean> <name properti = "lokasi"> <!-Ada properti lokasi di kelas </conray> </connay> <. Conn. </propt> </tact> Meskipun tampaknya sama singkatnya dengan <context:property-placeholder location=""/> , lebih jelas. Disarankan untuk menggunakan yang berikut. Namun, ini terbatas pada XML, yaitu, gunakan ${key} untuk mendapatkan nilai dalam file konfigurasi di beans.xml.
2. Muat file properti melalui anotasi
Cara lain adalah dengan menggunakan anotasi @Value untuk memuat nilai -nilai dalam file konfigurasi melalui anotasi.
Mari kita ambil contoh: Jika kita ingin mendapatkan jalur absolut ke file tertentu dalam program, kita secara alami akan berpikir bahwa kita tidak dapat menulisnya mati dalam program, maka kita juga dapat menghapus instalasi file properti. Atau buat file public.properties baru di direktori SRC, dengan asumsi bahwa catatan ditulis di dalamnya:
filepath = e/: //web//apache-tomcat-8.0.26//webapps//e_shop//image
Jika Anda ingin mendapatkan filepath ini melalui anotasi dalam kode Java, Anda harus terlebih dahulu mengonfigurasi metode anotasi dalam file beans.xml:
<!-Metode kedua adalah menggunakan injeksi anotasi, yang terutama digunakan dalam kode java untuk menyuntikkan nilai nilai yang sesuai dalam file properti menggunakan anotasi-> <bean id = "prop"> <name properti = "lokasi"> <!-ini adalah kelas properti yang tidak berprestasi. Ini juga memiliki properti lokasi dan juga menerima array, seperti halnya <r array> di atas <value> classpath: public.properties </value> </r array> </prop Property> </bean>
Sekarang kita dapat menggunakan anotasi dalam kode Java untuk mendapatkan nilai filepath:
@Component ("Fileupload") kelas publik Fileuploadutil mengimplementasikan fileupload {private string filePath; @Value ("#{prop.filePath}") //@nilai berarti menemukan kacang dengan id = "prop" di file beans.xml. Ini membaca file konfigurasi Properties melalui anotasi, dan kemudian membaca nilai nilai yang sesuai dari kunci = filepath dalam file konfigurasi yang sesuai dengan public void setFilePath (string filepath) {system.out.println (filepath); this.filepath = filepath; }Perhatikan bahwa harus ada metode yang harus disuntikkan, dan anotasi dapat ditulis pada metode yang ditetapkan. Dalam metode SetFilePath, filepath dicetak melalui konsol untuk mengamati apakah konsol memiliki output saat memulai Tomcat. Jika demikian, itu berarti pegas telah memuat filepath saat dimulai. Mari kita lihat informasi startup konsol:
Di atas adalah dua cara pegas memuat file konfigurasi properti. Faktanya, kelas PropertyplaceFolderConfigurer di atas berdasarkan metode XML dan kelas PropertiesFactoryBean di sini berdasarkan metode anotasi keduanya mewarisi PropertiesLoaderSupport dan keduanya digunakan untuk memuat file konfigurasi properti.
Meringkaskan
Di atas adalah penjelasan terperinci dari dua contoh file properti pemuatan pegas yang diperkenalkan oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!