응용 프로그램 컨텍스트이게 뭐야?
제 동료들은 "응용프로그램 컨텍스트"라는 단어를 자주 사용합니다.많은 기사들에서 이 배치는 매우 자주 사용되기도 했습니다.
현재 제가 이해하는 바로는 애플리케이션 컨텍스트는 단일 xml 파일입니다.
하지만 제 말이 맞다면 사람들은 구성 xml 파일 대신 "응용프로그램 컨텍스트"를 사용하지 않을 것입니다.
제가 이 문제를 처리하는 것을 도와주실 수 있습니까?
@fake는 봄의 의미에 대해 직설적인 대답을 합니다.간단히 말해, 구성(일반적으로 XML 파일 주석 기반)을 로드하는 개체입니다. 그러면 Spring이 빈과 그 이점을 관리하기 시작합니다.
- 포장으로 신고된 콩
- 주석에 의해 선언된 콩
- 시공자 및 방법 자동배선
- 콩주사
- 구성, .properties 및 .yaml 파일 로딩
- 기타
응용프로그램 컨텍스트를 시작하려면 다음 중 하나를 사용할 수 있습니다.
응용프로그램을 시작할 때 응용프로그램 컨텍스트를 수동으로 로드합니다.이 작업은 샘플 용도 또는 독립 실행형 응용프로그램에서 수행됩니다.
public class Foo { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("path/to/applicationContext.xml"); //use the context as you wish... } }
Spring MVC를 사용하는 Java 웹 애플리케이션의 경우,
DispatchServlet
가 응용 프로그램 컨텍스트를 로드하므로 응용 프로그램의 WEB-INF 폴더에 springapp-servlet.xml 파일만 생성하면 됩니다.
응용프로그램 컨텍스트는 단일 구성(XML 기반 여부)에 연결됩니다.마침표.
이를 이해한 후, 응용프로그램당 하나 이상의 응용프로그램 컨텍스트를 가질 수 있다는 것도 이해할 수 있었습니다.이것은 2개 이상을 가지는 것입니다.ApplicationContext
s 동일한 응용 프로그램에서콘솔 응용 프로그램의 마지막 예를 통해 다음을 쉽게 확인 방법은 다음과 같습니다.
public class Foo {
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("path/to/applicationContext.xml");
ApplicationContext context2 =
new ClassPathXmlApplicationContext("path/to/applicationContext.xml");
//use the context as you wish...
}
}
동일한 XML 구성을 사용하는 두 개의 응용프로그램 컨텍스트가 있습니다.이것을 할 수 있나요?네, 여기서 실제로 보고 계십니다.그럼 뭐가 다른 거지?주요 차이점은 스프링 빈 싱글톤 스코프가 애플리케이션 컨텍스트당 싱글톤이라는 것이며, 이는 다음을 검색할 때 의미합니다.Bar
applicationContext.xml 파일에 구성되어 있는 bean.context
다음에서 검색하는 것과 같지 않습니다.context2
, 하지만 몇 번의 검색은context
같은 것을 돌려줄 것입니다.Bar
콩 예
이것이 좋은 관행으로 여겨지나요, 나쁜 관행으로 여겨지나요?둘 다 해결해야 할 문제에 달려 있지 않을 것입니다. (마지막 예의 경우, 저는 그것이 나쁜 관행이라고 말하고 싶습니다.대부분의 사람들은 모든 빈을 한 곳에서(XML 등을 통해) 구성하고 단일 애플리케이션 컨텍스트로 로드하는 것을 권장합니다.
이것을 간단한 말로 이해해 봅시다.
ApplicationContext는 애플리케이션에 구성 정보를 제공하는 데 사용되는 Spring 애플리케이션 내의 중앙 인터페이스입니다.응용프로그램 실행을 시작할 때 생성됩니다.
애플리케이션에 필요한 전체 구성을 제공합니다.
- 콩 공장 - 콩이라고 불리는 자바 객체의 제작을 담당합니다.한 가지 예로 응용프로그램의 구성요소를 들 수 있습니다.
- 응용프로그램 수신기 - 이벤트에 필요한 모든 수신기.
- 웹 서버 정보.
- 응용프로그램 현재 환경별 정보입니다.
- 리소스 패턴 확인기 - 경로 일치기가 있는 리소스 로더입니다.
- 라이프 사이클 프로세서.
- 클래스 로더.
- 모니터 시작 및 종료.
- 서블릿 컨텍스트.
- 리더와 스캐너.
- 로거
기타.
package com.srmhitter9062.spring;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class ApplicationContextUtils implements ApplicationContextAware {
private static ApplicationContext ctx;
@Override
public void setApplicationContext(ApplicationContext appContext)
throws BeansException {
ctx = appContext;
}
public static ApplicationContext getApplicationContext() {
return ctx;
}
}
아래 스냅샷에서 애플리케이션 개체에 대한 몇 가지 아이디어를 얻을 수 있습니다.
요약하면, 응용프로그램 컨텍스트는 응용프로그램을 실행하기 위해 생성된 구성 개체라고 할 수 있습니다.
applicationContext.xml
는 "루트 웹앱 컨텍스트"에 대한 콩을 정의합니다.웹 인식 애플리케이션 컨텍스트입니다.
웹 애플리케이션의 모든 서블릿 간에 공유되는 콩을 사용합니다.
이것이 도움이 되었으면 좋겠습니다.
동료들이 의미하는 것은 로드된 스프링 애플리케이션 컨텍스트이며, 이를 통해 다음을 액세스할 수 있다는 것입니다.
- 애플리케이션의 구성,
- 초기화된 콩,
- 응용 프로그램 이벤트 API,
- 기타
자바독에서:
응용프로그램에 대한 구성을 제공하는 중앙 인터페이스입니다.이것은 응용프로그램이 실행되는 동안 읽기 전용이지만 구현에서 이를 지원하는 경우 다시 로드될 수 있습니다.
ApplicationContext는 다음을 제공합니다. [...]
언급URL : https://stackoverflow.com/questions/19615972/application-context-what-is-this
'programing' 카테고리의 다른 글
Mysql에서 Varchar를 텍스트로 마이그레이션 (0) | 2023.10.28 |
---|---|
Gmail에서 메일 AJAX 요청 가로채기 (0) | 2023.10.28 |
Chrome CSS 3 전환 매끄럽지 않음 (0) | 2023.10.28 |
무료 Xml Diff/Merge 도구가 있습니까? (0) | 2023.10.28 |
프로젝트의 여러 CSS 파일에서 사용되지 않는 CSS 정의를 식별하는 방법 (0) | 2023.10.28 |