일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- DI
- assertThat
- DIP
- sqld
- 스프링 부트 입문
- resultMap
- assertThrows
- thymeleaf
- 스프링 부트
- Javascript
- db
- 스프링
- 필드 주입
- springboot
- 스프링부트
- Effective Java
- kafka
- spring
- jdbc
- SQL
- 싱글톤
- JPA
- 스프링 부트 기본
- 스프링 프레임워크
- java
- @Configuration
- 스프링 컨테이너
- 스프링 빈
- 생성자 주입
- mybatis
- Today
- Total
목록스프링 컨테이너 (4)
선 조치 후 분석

싱글톤 컨테이너, 스프링 컨테이너 스프링 컨테이너는 싱글톤 패턴의 문제점을 해결하면서, 객체 인스턴스를 싱글톤(1개만 생성)으로 관리한다. 지금까지 정리했던 내용에서의 스프링 빈이 바로 싱글톤으로 관리되는 빈이다. 싱글톤 컨테이너 (=스프링 컨테이너) 스프링 컨테이너는 싱글턴 패턴을 적용하지 않아도, 객체 인스턴스를 싱글톤으로 관리한다. 전에 설명한 컨테이너 생성 과정을 자세히 보자. 컨테이너는 객체를 하나만 생성해서 관리한다. @Configuration public class AppConfig { @Bean public MemberService memberService() { //return new MemberServiceImpl(new MemoryMemberRepository()); //'Memory..

싱글톤 컨테이너, 웹 애플리케이션과 싱글톤 + 싱글톤 컨테이너 (스프링 컨테이너) + same(==)과 equal 차이 + 싱글톤 패턴 문제점 싱글톤은 객체가 JVM안에 딱 1개만 있어야 하는 상태를 의미한다. 그렇다면 싱글톤은 왜 많이 사용되는지 알아보자. 웹 애플리케이션과 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도 얼마든지 개발할 수 있다. E.g) 데몬, 배치 등등 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 예를 들어서, 각각의 클라이언트가 memberService를 각각 요청한다고 했을 때, DI컨테이너에서는 3개의 memberService를 각각 만들어야 한다...

BeanFactory와 ApplicationContext BeanFactory 스프링 컨테이너의 최상위 인터페이스 스프링 빈을 관리하고 조회하는 역할을 담당 getBean()을 제공 지금까지 우리가 사용했던 대부분의 기능은 BeanFactory가 제공하는 기능 ApplicationContext BeanFactory 기능을 모두 상속받아서 제공 빈을 관리하고 검색하는 기능을 BeanFactory가 제공해주는데, 그러면 둘의 차이는? => 애플리케이션을 개발할 때는 빈은 관리하고 조회하는 기능은 물론이고, 수많은 부가기능이 필요 즉, 다양한 부가기능까지 사용하기 위해서 ApplicationContext를 사용한다. ApplicationContext의 API를 찾아서 들어가 보면 아래처럼 상속을 많이 받아있는..
스프링으로 전환, 스프링 시작! + @Bean + @Configuration + 스프링 컨테이너 + 스프링 컨테이너 장점 + ApplicationContext + getBean() + 스프링 빈 지금까지는 '순수한 Java 코드'로 'DI'를 진행했다. 이제는 스프링의 기능을 사용해서 진행해보자! 1. AppConfig 설정 변경 아래 기존 순수 Java코드의 AppConfig를 '스프링'의 기능을 사용해서 변경하자. 변경 전 public class AppConfig { public MemberService memberSevice() { return new MemberServiceImpl(memberRepository()); } public MemberRepository memberRepository()..