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
Mary-Kate Olsenasal
2024-11-09 05:06:02548semak imbas

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
}

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>
  1. Gunakan anotasi @Value untuk menyuntik nilai sifat:
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
    @Value("${results.max}")
    private int maxResults;
    // Implementation omitted
}

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;

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!

Kenyataan:
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