最近开发一个Java应用程序,希望能使用Spring来实现依赖注入。
在Web应用程序中,可以在web.xml文件中配置listener来自动实现注入。
在Java Application中,可以通过如下的方式来加载Spring:
ClassPathXmlApplicationContext ctx = new FileSystemXMLApplicationContext("beans.xml");
Hello hello = ctx.getBeans("hello");
但这样的一个问题是,在每次使用一个bean时,都需要显示调用一次getBeans。
不知有什么好的方法,能够让Spring自动加载对象,而不需要显式调用getBeans?
更多 0
Tulis dua baris lagi mengikut contoh anda.
Lapisan yang pada mulanya mengendalikan permintaan dalam projek web masih perlu dijana melalui getBeans(). Cuma langkah ini dilakukan oleh tomcat/strtus/springMVC.
Spring akan menyuntik kelas secara automatik diurus olehnya Walau bagaimanapun, kelas utama yang dimulakan oleh program anda tidak dijana oleh pengurusan Spring.
Anda memerlukan Autowayed
Untuk menggunakan suntikan kebergantungan Spring, anda mesti mendapatkan kacang daripada Spring untuk memastikan kebergantungan kacang telah disuntik. Jika anda mencipta objek baharu sendiri, bagaimanakah Spring boleh menyuntiknya untuk anda?
Anda boleh merangkum sendiri kaedah getBeans
Anda harus menganggap HELLO anda sebagai pembolehubah ahli, kemudian pergi ke @autowired atau @Resourse
Suntikan kebergantungan tidak lebih daripada dua langkah:
Isytihar kacang
Suntikan kacang
Cara mengisytiharkan kacang:
dengan xml
Tambahkan @Component, @Service, dsb. pada kelas
Tulis kaedah @Bean dalam kelas dengan @Configuration
Kaedah menyuntik kacang:
dengan xml
Anotasi seperti @Autowire
Ia mungkin tidak lengkap, tetapi ini sepatutnya yang biasa digunakan untuk butiran, sila rujuk dokumentasi musim bunga dan bahagian ioc
Jom tanya soalan
Tidak perlu mengkonfigurasi pendengar dalam web.xml dalam aplikasi web (prasyaratnya ialah servlet3.0+, seperti tomcat7+)
Untuk Aplikasi Java, mengapa tidak mencuba but Spring?
Pemilik topik yang disyorkan boleh lihat @ChaChage Servlet 3 + konfigurasi sifar MVC Spring: alih keluar semua xml