Apabila mengkonfigurasi kacang Spring melalui anotasi, nilai sifat daripada sumber luaran menjadi perlu. Artikel ini menangani persoalan tentang cara menyuntik nilai sifat ke dalam kacang yang telah dikonfigurasikan menggunakan anotasi.
Kod yang disediakan menunjukkan Spring bean, PersonDaoImpl, dikonfigurasikan melalui anotasi tanpa definisi yang jelas dalam fail XML Spring. Walau bagaimanapun, timbul keperluan untuk menyuntik sifat daripada app.properties ke dalam kacang ini.
Secara tradisinya, ini akan dicapai dengan mentakrifkan sifat dalam fail XML dan menggunakan PropertyPlaceholderConfigurer untuk membaca nilai daripada fail luaran. Walau bagaimanapun, dengan kacang ditakrifkan melalui anotasi, pendekatan ini tidak boleh dilakukan.
Untuk menangani perkara ini, Spring menawarkan penyelesaian menggunakan sokongan EL dalam Spring 3. Kod berikut menunjukkan idea:
@Repository("personDao") public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao { @Value("#{systemProperties.databaseName}") public void setDatabaseName(String dbName) { ... } }
Dalam contoh ini, systemProperties ialah objek tersirat yang membenarkan akses kepada sifat sistem. dbName kemudiannya disuntik dengan nilai pangkalan data harta sistemName.
Begitu juga, kacang lain boleh disuntik menggunakan ungkapan EL. Contohnya:
@Value("#{strategyBean.databaseKeyGenerator}") public void setKeyGenerator(KeyGenerator kg) { ... }
Di sini, strategyBean diandaikan sebagai Spring bean dan sifat pangkalan dataKeyGeneratornya akan disuntik ke dalam kacang semasa.
Spring juga membenarkan sifat disuntik daripada a Objek sifat:
@Value("#{myProperties['github.oauth.clientId']}") private String githubOauthClientId;
Dalam contoh ini, harta daripada objek myProperties ialah disuntik ke dalam medan githubOauthClientId.
Atas ialah kandungan terperinci Bagaimana untuk Menyuntik Hartanah daripada Sumber Luaran ke dalam Kacang Spring Beranotasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!