Rumah > Java > javaTutorial > Spring-: How-Spring-Boot-Determines-Application-Context

Spring-: How-Spring-Boot-Determines-Application-Context

Susan Sarandon
Lepaskan: 2025-01-29 16:08:09
asal
458 orang telah melayarinya

spring-: how-spring-boot-determines-application-context

boot musim bunga secara automatik menentukan pelaksanaan konteks aplikasi

Apabila memanggil , Spring Boot akan menentukan pelaksanaan ApplicationContext yang betul mengikut faktor -faktor berikut

SpringApplication.run(MySpringBootApp.class, args); Laluan Kelas (Ketergantungan dalam Projek)

jenis aplikasi berjalan (web atau non -web)
  1. proses ok
  2. SpringApplication secara dalaman Gunakan logik berikut untuk memilih ApplicationContext yang sesuai:
  3. Jika Spring MVC atau Spring WebFlux (Spring-Boot-Starter-Web atau Spring-Boot-Starter-WebFlux):

ia akan memulakan konteks aplikasi berasaskan web

:
  • Berdasarkan perkhidmatan (Spring-Boot-Starter-Web):

    (Aplikasi MVC Spring untuk Tomcat, Jeti atau Undertow).

    Reacting (Spring-Boot-Starter-WebFlux):
    • (untuk aplikasi WebFlux).
    • Jika tidak ada spring-boot-starter-web atau spring-boot-starter-weight: AnnotationConfigServletWebServerApplicationContext
    • Ia akan memulakan aplikasi bukan -web di atas dan di bawah : → AnnotationConfigReactiveWebServerApplicationContext.
  • konteks aplikasi web sebagai contoh

    Jika ia mengandungi Spring-Boot-Starter-Web, output akan menjadi:
    • contoh konteks aplikasi bukan -web AnnotationConfigApplicationContext Jika anda mengeluarkan Web Starter-Starter-Starter-Web, output akan menjadi:
kepentingan inisialisasi konteks aplikasi

Aplikasi di bawah
@SpringBootApplication
public class WebApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(WebApplication.class, args);
        System.out.println("Context Type: " + context.getClass().getName());
    }
}
Salin selepas log masuk
adalah

Container Core

, ia menguruskan kitaran hayat dan konfigurasi kacang dalam aplikasi Spring Boot. Inisialisasi adalah penting untuk sebab -sebab berikut:
<code>Context Type: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext</code>
Salin selepas log masuk

1. Pengurusan kacang

  • Konteks Permohonan Pendaftaran dan Pengurusan Bean , yang membolehkan suntikan ketergantungan (). @Autowired
  • Tanpa konteks permohonan, Spring tidak akan tahu bagaimana untuk contoh dan menyuntik kebergantungan.
2. Konfigurasi automatik

  • Mekanisme bergantung kepada konteks aplikasi. @EnableAutoConfiguration ia mengimbas jalan dan konfigurasikan komponen
  • spring mengikut ketergantungan.
  • 3. Kitaran Hidup dan Pengurusan Acara

Konteks aplikasi menerbitkan peristiwa kitaran hayat (

,
    ).
  • ApplicationReadyEvent Ia mendengar isyarat penutupan dan menguruskan sumber dengan betul. ApplicationStartedEvent
  • 4. Sokongan Pelayan Web Terbenam

Untuk aplikasi web, konteks aplikasi bermula

pelayan tertanam
    (Tomcat, Jeti, Undertow).
  • Tanpa itu, Spring Boot tidak dapat mengendalikan permintaan HTTP
  • .
  • 5. Alam Sekitar dan Pengurusan Atribut

Konteks dari atau

LOAD
    atribut konfigurasi
  • . application.properties application.yml Ia menguruskan fail konfigurasi () dan tetapan khusus untuk persekitaran.
  • @Profile kesan sebenar konteks aplikasi yang betul
memilih aplikasi yang betul di atas dan di bawah akan menjejaskan tingkah laku
aplikasi

, seperti berikut:

1. Tentukan sama ada untuk memulakan pelayan web tertanam

  • Jika anda memilih konteks yang salah, aplikasi anda mungkin tidak dapat memulakan sebagai aplikasi web.
  • Aplikasi web memerlukan AnnotationConfigServletWebServerApplicationContext, ia membimbing Tomcat/Jeti.

2. Kawalan Komponen Pengimbasan dan Suntikan Ketergantungan

  • Konteks diasaskan dan disuntik oleh kebergantungan dalam julatnya.
  • Sebagai contoh, konteks bukan -web tidak akan mengimbas atau memulakan pengawal (@RestController tidak akan berfungsi).

3. Dayakan atau lumpuhkan konfigurasi automatik

  • Spring Boot Berdasarkan konteks yang dipilih Konfigurasi Aplikasi Automatik .
  • Sebagai contoh: Jika konteks web dipilih, boot musim bunga akan
  • secara automatik mengkonfigurasi komponen MVC.
4. Mempengaruhi kaedah pengurusan dan pemuatan kacang

    Konteks web Pre ​​-configured
  • , ia mengendalikan permintaan HTTP. DispatcherServlet
  • Konteks Non -Web tidak mempunyai, yang bermaksud bahawa
  • Jika tidak ada konfigurasi tambahan, anda tidak akan dapat mengendalikan permintaan web .

Ringkasan

---
idea terakhir
方面 Application Context 的影响
Bean 管理 初始化和管理依赖项 (`@Autowired`)
Web 服务器 启动嵌入式 Tomcat/Jetty(如果为 Web 上下文)
自动配置 根据类路径应用自动配置
生命周期管理 处理启动/关机事件
配置文件和环境 加载属性,管理配置文件 (`@Profile`)
依赖注入范围 确定哪些 Bean 和控制器可用
Spring Boot secara automatik akan memilih aplikasi yang betul di atas dan di bawah mengikut laluan kelas

.

    Aplikasi Web
  • perlu berdasarkan konteks web ().
  • Aplikasi non -web
  • Konteks berasaskan standard menggunakan standard (). Konteks Inisialisasi yang betul AnnotationConfigServletWebServerApplicationContext Pastikan suntikan ketergantungan yang betul, konfigurasi automatik dan pengurusan kitaran hayat. ?

Atas ialah kandungan terperinci Spring-: How-Spring-Boot-Determines-Application-Context. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan