@RequiredArgsConstructor이란? Lombok에서 제공해 주는 어노테이션으로 final이 붙은 필드와 @NonNull이 붙은 필드에 자동으로 생성자를 생성해 준다. 어떻게 @RequiredArgsConstructor만으로 객체가 주입이 되는지? @RequiredArgsConstructor를 사용하지 않는 생성자 주입은 아래와 같다. @Autowired가 붙은 생성자를 통해 객체를 주입하고 final 키워드를 통해 불변성을 보장한다.@Servicepublic class SampleService { private final SampleDAO event; @Autowired // @Autowired 생략 가능. 생성자가 1개뿐이기 때문 SampleService(Samp..
@Qualifier이란? @Qualifier은 @Primary 어노테이션과 다르게 빈 객체에 이름을 지정하여 객체를 주입하는 방식이다. @Primary이란?" data-og-description="@Primary이란? @Primary 어노테이션은 예를 들어 클래스 A에 인터페이스 B를 선언했는데 인터페이스를 구현한 객체 2개가 존재할 경우 스프링은 어느 객체를 주입해야 하는지 알 수 없게 되는데 주입" data-og-host="oniic.tistory.com" data-og-source-url="https://oniic.tistory.com/152" data-og-url="https://oniic.tistory.com/152" data-og-image="https://scrap.kakaocdn.net/d..
@Primary이란? @Primary 어노테이션은 예를 들어 클래스 A에 인터페이스 B를 선언했는데 인터페이스를 구현한 객체 2개가 존재할 경우 스프링은 어느 객체를 주입해야 하는지 알 수 없게 되는데 주입할 객체에 어노테이션을 지정하면 해당 객체가 주입이 된다. @Primary 예제인터페이스public interface SampleDAO {}인터페이스 구현 객체@Repositorypublic class SampleDAOImpl implements SampleDAO {}@Repositorypublic class EventSampleDAOImpl implements SampleDAO {}의존 객체@Service@ToString@RequiredArgsConstructorpublic class SampleSe..
리스너란? 서블릿에서 리스너란 특정 이벤트가 발생하면 자동으로 리스너에 정의된 동작을 실행한다 리스너의 활용 예웹 애플리케이션이 시작되거나 종료될 때 특정한 작업 수행HttpSession에 특정한 작업에 대한 감시와 처리HttpServletRequest에 특정한 작업에 대한 감시와 처리 리스터 예제 (세션 관련 리스너) HttpSession 관련 작업을 감시하는 리스너는 HttpSessionListener나 HttpSessionAttributeListener를 구현하고 클래스에 @WebListener 어노테이션을 선언함으로써 HttpSession에 관련 작업이 이루어질 때 이를 감지하여 리스너에 정의된 동작을 실행할 수 있다.@WebListener@Log4j2public class LoginListene..
