Spring如何在Java应用程序中自动实现依赖注入
巴扎黑
巴扎黑 2017-04-18 09:51:09
0
6
602

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

巴扎黑
巴扎黑

membalas semua(6)
迷茫

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.

Peter_Zhu

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:

  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?

Ty80

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan