spring bean
[Spring] 웹 애플리케이션과 싱글톤
웹 애플리케이션과 싱글톤 - 스프링은 기업용 온라인 서비스 기술을 지원하기 위해 탄생하였다. - 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도 얼마든지 개발할 수 있다. - 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContatiner(){ AppConfig appConfig = new AppConfig(); //1. 조회: 호출할때마다 객체를 생성 MemberService memberService1 = appConfig.memberService(); //2. 조회: 호출할때마다 객체를 생성 MemberService memberService2 = appConfi..
[Spring] BeanFactory와 ApplicationContext
BeanFactory - 스프링 컨테이너의 최상위 인터페이스이다. - 스프링 빈을 관리하고 조회하는 역할을 담당한다. - getBean()을 제공한다. - 지금까지 우리가 사용했던 대부분의 기능은 BeanFactory가 제공하는 기능이다. Applicationcontext - BeanFactory기능을 모두 상속받아서 제공한다. - 빈을 관리하고 검색하는 기능을 BeanFactory가 제공해주는데, 그러면 둘의 차이는 애플리케이션을 개발할 때는 빈을 관리하고 조회하는 기능은 물론이고, 수 많은 부가기능이 필요하다. Applicationcontext가 제공하는 부가기능 MessageSource를 활용한 국제화 기능 - 예를 들어서 한국에서 들어오면 한국어로, 영어권에서 들어오면 영어로 출력한다. 환경변수 ..
[Spring] 스프링 컨테이너와 빈
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); - ApplicationContext를 스프링 컨테이너라 하며 인터페이스이다. - 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 어노테이션 기반의 자바 설정 클래스로 만들 수 있다. - 자바 설정 클래스를 기반으로 스프링 컨테이너를 만들면 new AnnotationConfigApplicationContext(AppConfig.class); 이 클래스는 ApplicationContext인터페이스의 구현체이다. Ps. 스프링 컨테이너를 부를 때 BeanFactory, ApplicationContext로 구분해서 이야기한다. Bean..