@HandlesTypes

Minjoo Kim·2024년 9월 20일
  • ServletContainerInitializer 구현체와 함께 사용되는 애노테이션
  • 서블릿 컨테이너가 관심 가져야하는 클래스들을 정의하고 특정 타입(클래스, 인터페이스)에 관심이 있다고 선언할 수 있다.
  • 서블릿 컨테이너는 애플리케이션 내 클래스를 스캔하여 다음 조건에 해당하는 클래스를 찾는다.
    - 지정된 인터페이스 구현
    • 지정된 클래스 상속
    • 지정된 애노테이션으로 마크
  • 이때 찾은 클래스들은 ServletContainerInitializeronStartup 메서드로 전달되고 매칭되는 클래스가 없다면 null이 전달된다.

ServletContainerInitializer

public interface ServletContainerInitializer {

    public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException;
}

ServletContainerInitializer 구현체

@HandlesTypes(WebApplicationInitializer.class) // 상단에 붙여준다.
// 없으면 null이 전달된다.
public class SpringServletContainerInitializer implements ServletContainerInitializer {

    @Override
    public void onStartup(Set<Class<?>> webAppInitializerClasses, ServletContext servletContext)
            throws ServletException {
            // ...
    }
}
profile
Hello, this is Minjoo Kim.

0개의 댓글