Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menyuntik Nilai Harta ke dalam Kacang yang Dikonfigurasikan dengan Anotasi pada Musim Bunga?

Bagaimanakah Saya Boleh Menyuntik Nilai Harta ke dalam Kacang yang Dikonfigurasikan dengan Anotasi pada Musim Bunga?

Mary-Kate Olsen
Lepaskan: 2024-11-09 05:06:02
asal
537 orang telah melayarinya

How Can I Inject Property Values into Beans Configured with Annotations in Spring?

Suntikan Harta ke dalam Kacang Dikonfigurasikan Menggunakan Anotasi pada Musim Bunga

Pada Musim Bunga, kacang sering dikonfigurasikan menggunakan anotasi untuk memudahkan suntikan kebergantungan dan pengimbasan laluan kelas. Walau bagaimanapun, jika anda perlu menyuntik nilai sifat daripada sumber luaran seperti fail sifat, anda mungkin menghadapi cabaran.

Pernyataan Masalah

Pertimbangkan kelas Java yang dianotasi sebagai Spring bean:

@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
    // Implementation omitted
}
Salin selepas log masuk

Kacang ini dikonfigurasikan melalui anotasi dan anda mahu menyuntik nilai sifat daripada fail app.properties ke dalamnya. Walau bagaimanapun, kerana kacang tidak diisytiharkan dalam fail XML Spring, pendekatan elemen tidak boleh digunakan.

Suntikan Harta Menggunakan Sokongan EL

Spring menyediakan sokongan EL (Bahasa Ungkapan) yang membolehkan suntikan sifat terus ke dalam kacang beranotasi. Untuk melakukan ini:

  1. Tambahkan kebergantungan berikut pada pom.xml projek anda:
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.23</version>
</dependency>
Salin selepas log masuk
  1. Gunakan anotasi @Value untuk menyuntik nilai sifat:
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
    @Value("${results.max}")
    private int maxResults;
    // Implementation omitted
}
Salin selepas log masuk

Contoh untuk Menyuntik Harta daripada Objek Sifat

Anda juga boleh menggunakan @Value untuk menyuntik sifat daripada objek Sifat:

@Autowired
private Properties myProperties;
@Value("#{myProperties['github.oauth.clientId']}")
private String githubOauthClientId;
Salin selepas log masuk

Maklumat Tambahan

  • Objek SystemProperties menyediakan akses kepada sifat sistem.
  • @Value juga boleh digunakan pada medan untuk suntikan terus.
  • Untuk butiran lanjut, rujuk blog ini siaran: [Suntikan Harta pada Musim Bunga Menggunakan @Value dan Sokongan EL](https://www.baeldung.com/spring-property-injection-value).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyuntik Nilai Harta ke dalam Kacang yang Dikonfigurasikan dengan Anotasi pada Musim Bunga?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan