Penjelasan terperinci tentang kaedah pemerolehan Kacang dalam Spring
Dalam rangka kerja Spring, pemerolehan Kacang adalah bahagian yang sangat penting. Dalam aplikasi, kita selalunya perlu menggunakan suntikan kebergantungan atau mendapatkan contoh kacang secara dinamik. Artikel ini akan memperkenalkan secara terperinci cara mendapatkan kacang dalam Spring dan memberikan contoh kod khusus.
Anotasi @Component ialah salah satu anotasi yang biasa digunakan dalam rangka kerja Spring. Kita boleh mengenal pasti ia sebagai Bean dengan menambahkan anotasi @Component pada kelas dan menggunakan ApplicationContext untuk mendapatkan contoh Bean daripada bekas. Berikut ialah contoh:
@Component public class UserService { // ... } public class Main { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); UserService userService = context.getBean(UserService.class); // ... } }
@Autowired anotation ialah satu lagi anotasi yang biasa digunakan dalam rangka kerja Spring. Dengan menambahkan anotasi @Autowired pada pembolehubah ahli, Spring akan secara automatik menyuntik Bean yang sepadan ke dalam pembolehubah ini. Berikut ialah contoh:
@Component public class UserService { @Autowired private UserRepository userRepository; // ... } public class Main { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); UserService userService = context.getBean(UserService.class); // ... } }
Apabila menggunakan anotasi @Autowired, jika terdapat berbilang kacang padan dalam bekas, Spring tidak dapat menentukan kacang yang hendak disuntik. Pada ketika ini, anda boleh menggunakan anotasi @Qualifier untuk menentukan nama kacang yang akan disuntik. Berikut ialah contoh:
@Component public class UserService { @Autowired @Qualifier("userRepositoryImpl") private UserRepository userRepository; // ... } public class Main { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); UserService userService = context.getBean(UserService.class); // ... } }
Selain menambah Kacang menggunakan anotasi, kami juga boleh membuat Kacang menggunakan @Configuration dan anotasi @Bean. Kelas yang dianotasi dengan @Configuration akan diiktiraf sebagai kelas konfigurasi oleh bekas Spring dan anotasi @Bean digunakan dalam kelas konfigurasi untuk mencipta tika Bean. Berikut ialah contoh:
@Configuration public class AppConfig { @Bean public UserService userService() { return new UserService(); } } public class Main { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); UserService userService = context.getBean(UserService.class); // ... } }
Selain menggunakan anotasi, kami juga boleh menggunakan fail konfigurasi XML untuk mendapatkan Beans. Dalam fail konfigurasi XML, kita boleh menentukan nama, jenis dan sifat Bean dan memuatkan fail konfigurasi melalui ApplicationContext untuk mendapatkan contoh Bean. Berikut adalah contoh:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userService" class="com.example.UserService"> <property name="userRepository" ref="userRepositoryImpl" /> </bean> <bean id="userRepositoryImpl" class="com.example.UserRepositoryImpl" /> </beans>
public class Main { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); UserService userService = context.getBean("userService", UserService.class); // ... } }
Di atas adalah beberapa cara biasa untuk mendapatkan kacang di Musim Bunga. Dengan menggunakan fail konfigurasi @Component, @Autowired, @Qualifier, @Bean dan XML, kami boleh mendapatkan contoh Bean dengan mudah yang diperlukan dalam aplikasi. Untuk senario yang berbeza, kami boleh memilih cara yang sesuai untuk mendapatkan kacang, dan mekanisme suntikan pergantungan Spring boleh menjadikan kod kami lebih ringkas, fleksibel dan boleh diuji.
Atas ialah kandungan terperinci Penjelasan terperinci tentang kaedah pemerolehan Kacang dalam Spring. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!