cari

Rumah  >  Soal Jawab  >  teks badan

Spring如何在Java应用程序中自动实现依赖注入

最近开发一个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

巴扎黑巴扎黑2781 hari yang lalu595

membalas semua(6)saya akan balas

  • 迷茫

    迷茫2017-04-18 09:53:09

    Tulis dua baris lagi mengikut contoh anda.

    public class Main{
    
      public static void main(String[] args){
        ClassPathXmlApplicationContext ctx = new FileSystemXMLApplicationContext("beans.xml");
        Hello hello = ctx.getBeans("hello");
        hello.say();
      }
    }
    
    class Hello {
      @Autowired
      private DbUtil db;
    
      public void say(){
        System.out.println(db.getWelcomeInfo());
      }
    }
    
    

    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.

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:53:09

    Anda memerlukan Autowayed

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 09:53:09

    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

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 09:53:09

    Anda harus menganggap HELLO anda sebagai pembolehubah ahli, kemudian pergi ke @autowired atau @Resourse

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 09:53:09

    Suntikan kebergantungan tidak lebih daripada dua langkah:

    1. Isytihar kacang

    2. Suntikan kacang

    Cara mengisytiharkan kacang:

    1. dengan xml

    2. Tambahkan @Component, @Service, dsb. pada kelas

    3. Tulis kaedah @Bean dalam kelas dengan @Configuration

    Kaedah menyuntik kacang:

    1. dengan xml

    2. 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

    1. Tidak perlu mengkonfigurasi pendengar dalam web.xml dalam aplikasi web (prasyaratnya ialah servlet3.0+, seperti tomcat7+)

    2. Untuk Aplikasi Java, mengapa tidak mencuba but Spring?

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 09:53:09

    Pemilik topik yang disyorkan boleh lihat @ChaChage Servlet 3 + konfigurasi sifar MVC Spring: alih keluar semua xml

    balas
    0
  • Batalbalas