1. 콩이란?
자바빈즈: 재사용 가능한 구성 요소, state(iv), getter&setter, 인수 없는 생성자
서블릿 및 JSP 빈: MVC 모델 역할, EL, 범위 및 JSP 컨테이너 관리
EJB 엔터프라이즈 자바 빈즈: 대기업에서 주로 사용, EJB 컨테이너에서 관리하는 복잡한 규칙(관리? bean 생성, 파기)
봄 콩: POJO 레벨 이전 Java 오브젝트. 간단한 독립형 Spring 컨테이너 관리
2. BeanFactory 및 애플리케이션 컨텍스트
![]()
콩: Spring Container에 의해 유지 물체
펜 컨테이너: 콩 저장Bean 저장 및 관리(생성, 소멸, 연결)
① 콩 공장 : 빈 생성, 연결 등 기본 기능으로 정의된 인터페이스 (콩을 만드는 공장)
② 애플리케이션 컨텍스트 : BeanFactory 확장그래서 여러가지 기능이 추가되었습니다 상호 작용
3. ApplicationContext의 종류
다양한 유형의 ApplicationContext 구현 제공
![]()
※ 최근 트렌드는 Java 코드를 많이 사용하는 것입니다. XML 및 Java 코드와 유사합니다.
예)반대 @bean
4. 루트 AC 및 서블릿 AC

5. 애플리케이션 컨텍스트의 주요 메서드
| 비워지다 | |
| 물체 | getBean(클래스 |
| 물체 | getBean(클래스 |
| 물체 | getBean(문자열 이름, 클래스 |
| 물체 | getBean(문자열 이름, 객체… 인수) |
| 물체 | getBean(문자열 이름) |
| 싱글톤 의식 원기 여부를 확인할 때 | |
| 부울 | isPrototype(문자열 이름) |
| 부울 | isSingletontype(문자열 이름) |
| 부울 |
isTypeMatch(문자열 이름, 클래스
|
| 부울 |
isTypeMatch(문자열 이름, ResolvableType typeToMatch)
|
| 콩 있어? | |
| 부울 | containsBean(문자열 이름) |
| 부울 | containsBeaDefinition(String neanName) |
| 부울 | containsLocalBean(문자열 이름) |
| 의견이 있습니까? | |
| 부울 |
findAnnotationOnBean(문자열 beanName, classAnnotationType)
|
| 정의된 콩의 수 | |
| 내부 | getBeanDefinitionCount() |
| 정의된 bean의 이름 | |
| 끈() | getBeanDefinitionNames() |
루트 WebApplicationContext를 얻는 방법

package com.fastcampus.ch3;
import java.util.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.context.*;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.context.*;
import org.springframework.web.context.support.*;
import javax.servlet.*;
import javax.servlet.http.*;
@Controller
public class HomeController {
@Autowired
WebApplicationContext servletAC; // Servlet AC
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, HttpServletRequest request, Model model) {
// 원래는 request.getServletContext()지만, 컨트롤러는 HttpServlet을 상속받지 않아서 아래와 같이 해야함.
ServletContext sc = request.getSession().getServletContext(); // ApplicationContextFacade
WebApplicationContext rootAC = WebApplicationContextUtils.getWebApplicationContext(sc); // Root AC
System.out.println("webApplicationContext = " + rootAC);
System.out.println("servletAC = " + servletAC);
System.out.println("rootAC.getBeanDefinitionNames() = " + Arrays.toString(rootAC.getBeanDefinitionNames()));
System.out.println("servletAC.getBeanDefinitionNames() = " + Arrays.toString(servletAC.getBeanDefinitionNames()));
System.out.println("rootAC.getBeanDefinitionCount() = " + rootAC.getBeanDefinitionCount());
System.out.println("servletAC.getBeanDefinitionCount() = " + servletAC.getBeanDefinitionCount());
System.out.println("servletAC.getParent()==rootAC = " + (servletAC.getParent() == rootAC)); // servletAC.getParent()==rootAC = true
return "home";
}
}
로그 분석

참조 :
봄의 화신 남궁성

