스프링 부트는 응용 프로그램 컨텍스트의 구현을 자동으로 결정합니다.
를 호출 할 때, Spring Boot는 다음 요소에 따라 올바른 ApplicationContext 구현을 자동으로 결정합니다
클래스 경로 (프로젝트의 종속성)
실행 응용 프로그램 유형 (웹 또는 비 -위브)
OK 프로세스
SpringApplication 내부적으로 다음 논리를 사용하여 적절한 ApplicationContext를 선택하십시오.
SpringApplication.run(MySpringBootApp.class, args);
Spring MVC 또는 Spring WebFlux (Spring-Boot-Starter-Web 또는 Spring-Boot-Starter-Webflux) 인 경우
는 웹 기반 애플리케이션 컨텍스트 : 를 초기화합니다.
서비스 (Spring-Boot-Starter-Web)를 기준으로 : (임베디드 Tomcat, Jetty 또는 Undertow에 대한 스프링 MVC 응용 프로그램).
반응 (스프링 부트 스타터 -webflux) : (웹 플럭스 애플리케이션의 경우).
-
스프링 부트 스타터-위에 있거나 스프링 부트 스타터-가중이없는 경우 :
는 : → 위와 아래의 비 와브 애플리케이션을 초기화합니다.
웹 애플리케이션 컨텍스트 예제
스프링 부트 스타터-위에 포함되면 출력은 다음과 같습니다.
비 Web 응용 프로그램 컨텍스트 예
스프링 부트 스타터-위스를 제거하면 출력이 다음과 같습니다.
-
애플리케이션 컨텍스트의 초기화의 중요성
아래의 아래의 는
코어 컨테이너 이며, 스프링 부팅 애플리케이션에서 Bean의 수명주기와 구성을 관리합니다. 초기화는 다음과 같은 이유로 중요합니다 1. Bean Management
응용 프로그램 컨텍스트 등록 및 관리 Bean .
응용 프로그램 컨텍스트가 없으면 Spring은 인스턴스 및 종속성을 주입하는 방법을 모릅니다. -
2. 자동 구성
메커니즘
@Autowired
는 응용 프로그램 컨텍스트에 따라 다릅니다.
경로를 스캔하고 종속성에 따라 스프링 구성 요소를 구성합니다. -
3. 수명주기 및 이벤트 관리
Application Context는 수명주기 이벤트를 게시합니다 (, ).
셧다운 신호를 듣고 리소스를 올바르게 관리합니다.
-
4. 내장 된 웹 서버 지원
@EnableAutoConfiguration
웹 애플리케이션의 경우 응용 프로그램 컨텍스트가 임베디드 서버 (Tomcat, Jetty, Undertow)를 시작합니다. -
이 없으면 Spring Boot 는 http 요청 를 처리 할 수 없습니다.
5. 환경 및 속성 관리
컨텍스트 또는 로드
구성 속성 .
는 구성 파일 ()과 환경에 맞는 설정을 관리합니다. -
ApplicationReadyEvent
ApplicationStartedEvent
올바른 응용 프로그램 컨텍스트의 실제 영향
위와 아래의 올바른 응용 프로그램을 선택하는 것은 다음과 같이 응용 프로그램 의 동작에 영향을 미칩니다. 1. 내장 된 웹 서버를 시작할지 여부를 결정합니다
잘못된 컨텍스트를 선택하면 응용 프로그램 가 웹 애플리케이션으로 - 를 시작하지 못할 수 있습니다.
웹 응용 프로그램에는 가 필요하며, Tomcat/Jetty를 안내합니다.
-
2. 제어 구성 요소 스캐닝 및 의존성 분사
AnnotationConfigServletWebServerApplicationContext
컨텍스트는 해당 범위 내의 종속성에 의해 초기화되고 주입됩니다.
예를 들어 비위장 컨텍스트 는 컨트롤러를 스캔하거나 초기화하지 않습니다 (는 작동하지 않습니다).
3. 자동 구성 를 활성화 또는 비활성화합니다
-
선택한 컨텍스트를 기반으로 한 스프링 부팅 자동 응용 프로그램 구성 .
예를 들어 : 웹 컨텍스트가 선택되면 스프링 부팅이
4. Bean의 관리 및 로딩 방법에 영향
웹 컨텍스트 사전 구성 <code>@RestController</code>, HTTP 요청을 처리합니다.
로그인 후 복사
비 Web 컨텍스트에는 컨텍스트가 없으므로 추가 구성이 없으면 웹 요청 를 처리 할 수 없습니다.
요약
- ---
마지막 아이디어
스프링 부트는 클래스 경로 에 따라 위와 아래의 올바른 응용 프로그램을 자동으로 선택합니다.
웹 애플리케이션 - 는 웹의 맥락을 기반으로해야합니다 ().
비네 비위 애플리케이션 표준 기반 컨텍스트 표준 (
초기화의 올바른 컨텍스트
올바른 의존성 주입, 자동 구성 및 수명주기 관리를 보장합니다. ?
위 내용은 Spring- : How-Spring-Boot-Determines-Application-Context의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!