Rumah > Java > javaTutorial > Bagaimana untuk Menyuntik Hartanah daripada Sumber Luaran ke dalam Kacang Spring Beranotasi?

Bagaimana untuk Menyuntik Hartanah daripada Sumber Luaran ke dalam Kacang Spring Beranotasi?

DDD
Lepaskan: 2024-11-13 14:01:02
asal
625 orang telah melayarinya

How to Inject Properties from External Sources into Annotated Spring Beans?

Menyuntik Sifat Luaran ke dalam Kacang Spring Beranotasi

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) { ... }
}
Salin selepas log masuk

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) { ... }
Salin selepas log masuk

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan