빈은 하나만 만든다.
- 스프링은 싱글톤으로 어플리케이션을 동작한다.
- 그러므로 클래스 하나를 component로 만들면 당연하게도 하나만 생성된다.
- 그런데 하나의 클래스에 대해 여러 개의 빈을 만들고 싶으면 어떻게 하는가?
익명 자식 클래스
- 익명 클래스를 통해 해결 할 수 있다. 익명 클래스를 생성할 경우 각 클래스는 다른 클래스로 받아드린다.
@Data
@Component
public class LookUp {
private final CommandValue commandValue = new CommandValue() {
};
private final Helper helper = new Helper() {
};
}
@Data
public class CommandValue {
private String error;
private String empty;
}
사실은..
- 위의 내용은 사실 메시징처리를 할 때 고민했던 문제다. 왜냐하면 메시지처리에서 공통된 요구사항은 반복되므로, Lookup 이란 기능의 공통적인 메시지를 추출하기 위한 노력이었다.
- 그러나 나는 메시징 처리에 대한 상당한 회의를 가지며 프로젝트를 진행했다... 이것은 차후에...