리스트 예시: 게시물이 존재할 경우 3건을 노출합니다.
- 다양한 설정 형식 지원 - 자바 코드, XML 스프링 컨테이너는 다양한 형식의 설정 정보를 받아들일 수 있게 유연하게 설계되어 있음 : 자바 코드, XML, Groovy 등 1. 어노테이션 기반 자바 코드 설정 사용 AnnotationConfigApplicationContext 를 사용하면서 자바 코드로 된 설정 정보를 매개변수로 넘긴다. -> new AnnotationConfigApplicationContext(AppConfig.class); 2. XML 설정 사용 최근엔 스프링 부트를 많이 사용하면서 XML 기반 설정은 잘 사용하지 않지만, 아직 많은 레거시 프로젝트들은 XML로 되어 있다. XML을 사용하면 컴파일 없이 빈 설정 정보를 변경할 수 있는 장점도 있다. (.xml 파일만 교체하면 됨) GenericXmlApplicationConte.. 2026.04.11
- BeanFactory와 ApplicationContext # BeanFactory : 스프링 컨테이너의 최상위 인터페이스로 스프링 빈을 관리하고 조회하는 역할 담당. getBean() 메서드 제공. 지금까지 사용했던 대부분의 기능은 BeanFactory 가 제공하는 기능이다. # ApplicationContext : BeanFactory 기능을 상속받아 빈 관리기능과 부가 기능 제공. 애플리케이션 개발시, 빈을 관리하고 조회하는 기능 뿐만 아니라 수많은 부가 기능이 필요하다. 1. ApplicatonContext가 제공하는 부가기능1) 메시지소스를 활용한 국제화 기능 ex) 한국에서 들어오면 한국어로, 영어권에서 들어오면 영어로 출력 2) 환경변수 로컬, 개발, 스테이징, 운영 등을 구분해서 처리 3) 애플리케이션 이벤트 이벤트를 발행하고 구독하는 모델을 .. 2026.04.11
- 스프링 빈 조회 - 상속 관계 대원칙 : 부모 타입으로 조회시 자식 타입도 함께 조회된다. 따라서 자바 객체 최고 부모인 Object 타입으로 조회하면 모든 스프링 빈이 조회된다. 예제) - src/test/java/hello/core/beanfind/ApplicationContextExtendsFindTest.javapackage hello.core.beanfind;import hello.core.discount.DiscountPolicy;import hello.core.discount.FixDiscountPolicy;import hello.core.discount.RateDiscountPolicy;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;.. 2026.04.10
- 스프링 빈 조회 - 동일한 타입이 둘 이상 타입으로 조회시, 같은 타입의 스프링 빈이 2개 이상일 때 오류가 발생한다. 이 때 빈 이름을 지정한다. # ApplicationContext.getBeansOfType(타입) : 해당 타입의 모든 빈 조회 예제) - src/test/java/hello/core/beanfind/ApplicationContextSameBeanFindTest.javapackage hello.core.beanfind;import hello.core.member.MemberRepository;import hello.core.member.MemoryMemberRepository;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;import org.. 2026.04.09
- 스프링 빈 조회 - 기본 스프링 컨테이너에서 스프링 빈을 찾는 가장 기본적인 조회 방법 # ApplicationContext.getBean(빈이름, 타입) # ApplicationContext.getBean(타입) # ApplicationContext.getBean(빈이름) -> 빈 이름, 타입으로 빈 객체(인스턴스) 조회 조회 대상 스프링 빈이 없으면 예외 발생NoSuchBeanDefinitionException: No bean named 'xxxxx' available예제) - src/test/java/hello/core/beanfind/ApplicationContextBasicFindTest.javapackage hello.core.beanfind;import hello.core.AppConfig;import hello.c.. 2026.04.08