본문 바로가기

스프링

(36)
같은 타입의 빈 등록(중복) 시작하기에 앞서, 스프링에서 연관관계를 주입할 때 해당 타입으로 된 객체가 많을 때 어떻게 처리할까? 예를 들자면, A 인터페이스에 구현체가 B, C라고 하자. 그리고 D라는 인터페이스를 구현한 E 객체가 B를 주입받고자 하는데, DIP를 준수하여 A를 주입받으려 한다. 하지만, A라는 인터페이스에는 B, C 두 개가 있고 스프링은 scan하면서 두 개를 발견하게 되어 문제가 생길 것이다. 이럴 때 어떻게 해결 할 수 있을까? 빈 2개 이상 살펴보기에 앞서, 다음과 같은 예제를 살펴보자 public interface EmployeeRepository { void save(Employee employee); Employee findById(Long employeeId); List findAll(); } @..
수동 빈 등록, 자동 빈 등록 시작하기에 앞서, 앞서 설명한 것처럼 스프링은 스프링 컨테이너가 자바 객체를 빈(Bean)으로 만들어 관리해준다. 이전과 같은 예제를 통해 스프링 컨테이너와, 빈에 대해 간단하게 리뷰 해보자. ​ public interface EmployeeRepository { void save(Employee employee); Employee findById(Long employeeId); List findAll(); } ​ public class EmployeeRepositoryImplement implements EmployeeRepository { private static Long sequence = 0L; private Map store = new HashMap(); @Override public void..
스프링 컨테이너, 빈 스프링 컨테이너, 빈 스프링은 여러 가지 SOLID 원칙을 준수하기 위해 IoC, DI 등을 핵심으로 삼고 있다. 이를 위해 스프링 컨테이너가 존재한다. 스프링 컨테이너는 위의 목적을 달성하기 위해 자바 객체를 컨테이너에 스프링이 직접 관리하게된다. 관리하는 이 자바 객체를 빈이라고 하고 이름과 객체 한 묶음으로 함께 저장한다. 쉽게 이해하기 위해 그림으로 표현하면 다음과 같다. ​
스프링의 핵심 시작하기에 앞서, 나는 스프링을 공부하기에 앞서 스프링의 핵심이 되는 3가지에 대해 먼저 알아보았다. ​ IoC (Inversion of Control) IoC란 제어의 역전이다 프로그램의 제어권은 보통 개발되는 애플리케이션에 존재하였는데 스프링에서는 DI 컨테이너가 객체의 생성, 초기화 서비스 소멸에 관한 모든 권한을 가지면서 객체의 생명주기를 관리한다. 이처럼 제어권한을 프레임워크가 소유한다는 것이 제어의 역전이다. ​ DI (Dependency Injection) DI란 말을 해석해보면 의존성 주입이다. 이는 IoC의 연장선이라고 볼 수 있는데, 원래 프로그램의 제어권을 애플리케이션이 들고있어 의존관계를 직접 관리했지만 스프링에서 제어권한이 프레임워크에게 넘어감으로써 필요한 의존관계를 DI 컨테이너..