[Spring] 의존성 주입하려는데, 조회되는 빈이 두개라면? (NoUniqueBeanDefinitionException 발생)
·
Spring
들어가며@CompnentScan으로 객체를 빈으로 안전하게 관리하기 위해 클래스에 @Component를 많이 붙히곤 한다. 하지만 프로그램의 완성도가 올라가면 올라갈수록 추상화의 정도가 어느정도 높아진다고 생각을 하는데, 그렇다면 다음과 같은 코드에서 문제가 생기고 만다.@Componentpublic class OnePlusOneEvent implements OfferEvent { @Override public void apply() { System.out.println("1+1 이벤트"); }}@Componentpublic class TwoPlusOneEvent implements OfferEvent { @Override public void apply() { ..
[Spring] 스프링 컨테이너가 빈을 관리하는 방식이 너무 궁금해서 Application.run(.class, args) 해부해보기
·
Spring
들어가며빈과 컨테이너는 스프링 기반의 프로젝트를 진행하다 보면 너무나 당연하게 쓰게 되는 개념이다. 자주 쓰는 프레임워크가 정확히 어떤 이유로 어떻게 기능을 제공하는지 알고 있어야, 여러가지가 꼬인 문제가 생겼을 때 근본적으로 해결할 수 있는 개발자가 될 수 있다고 생각해서 개념을 정리하고 있었다. 그러다가 정확히 코드로 어떻게 제공중인지도 궁금해져서 메인함수에 쓸쓸하게 혼자 있던 Application.run()메서드를 해부해보았다. 그 이해 흐름을 작성한 글이다.본론으로🧐 스프링은 왜 컨테이너와 빈이라는 개념을 제공할까?스프링 컨테이너가 객체들을 빈으로 관리하여 필요시에 해당 객체를 찾아서 반환해준다는 식의 표현을 많이 접할 수 있다. 하지만 왜 굳이 객체를 컨테이너로 관리하며 반환해줄까? 아래 코드..