Skip to content

Latest commit

Β 

History

History
133 lines (86 loc) Β· 3.71 KB

File metadata and controls

133 lines (86 loc) Β· 3.71 KB

λͺ©μ°¨

Spring Boot ν•„ν„° μ„€μ •

일반적인 μ„œλΈ”λ¦Ώ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” web.xml 을 ν†΅ν•΄μ„œ ν•„ν„°λ₯Ό μ„€μ •ν•œλ‹€. μ„œλΈ”λ¦Ώ ν•„ν„° μ„€μ • 방법

<filter>
  <filter-name>ν•„ν„° 이름</filter-name>
  <filter-class>ν•„ν„° 클래슀</filter-class>
</filter>

<filter-mapping>
  <filter-name>ν•„ν„° 이름</filter-name>
  <url-pattern>ν•„ν„°λ₯Ό μ μš©ν•  URL</url-pattern>
</filter-mapping>

μŠ€ν”„λ§ λΆ€νŠΈμ—λŠ” 더이상 web.xml 을 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€. κ·ΈλŸ¬λ―€λ‘œ ν•„ν„°λ₯Ό μ„€μ •ν•˜λŠ” 방법도 μžλ°” 섀정을 톡해 μ„€μ •ν•΄μ€˜μ•Όν•œλ‹€.

μŠ€ν”„λ§ λΆ€νŠΈμ—μ„œ ν•„ν„°λ₯Ό μ„€μ •ν•˜λŠ” 방법은 두 가지이닀.

  • FilterRegistrationBean 을 μ΄μš©ν•˜λŠ” 방법
  • μŠ€ν”„λ§ λΆ€νŠΈ λ‚΄μž₯ μ»¨ν…Œμ΄λ„ˆ(ν†°μΊ£)이 μ§€μ›ν•˜λŠ” @WebServlet, @WebFilter, @WebListener μ„ μ–Έν•΄μ„œ μžλ™ 등둝 ν›„ @ServletComponentScan 둜 μ΄μš©ν•˜λŠ” 방법

1 FilterRegistrationBean

org.springframework.boot.web.servlet 의 FilterRegistrationBean 을 μ‚¬μš©ν•˜μ—¬ ν•„ν„° 클래슀λ₯Ό μ„€μ •νŒŒμΌμ— 빈으둜 λ“±λ‘ν•˜λŠ” 방식.

public class TestFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("Test Filter Init()");
    }

    @Override
    public void destroy() {
        System.out.println("Test Filter Destory()");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("request - Test Filter doFilter()");
        filterChain.doFilter(servletRequest, servletResponse);
        System.out.println("response - Test Filter doFilter()");
    }
}
@Configuration
public class WebConfig {

    @Bean
    public FilterRegistrationBean getFilterRegistrationBean(){
        FilterRegistrationBean registrationBean = new FilterRegistrationBean(new TestFilter());
//        registrationBean.setUrlPatterns(Arrays.asList("/article/*"));
        registrationBean.addUrlPatterns("/test");
        return registrationBean;
    }
}

2 @WebFilter μ• λ„ˆν…Œμ΄μ…˜ ν•„ν„° 등둝

μŠ€ν”„λ§λΆ€νŠΈμ—μ„œ μ§€μ›ν•˜λŠ” @WebFilter λ₯Ό μ‚¬μš©ν•˜μ—¬ μžλ™ 등둝후 @ServletComponentScan 으둜 μ‚¬μš©ν•˜λŠ” 방식

@WebFilter(urlPatterns = "/test")
public class TestFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("Test Filter Init()");
    }

    @Override
    public void destroy() {
        System.out.println("Test Filter Destory()");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("request - Test Filter doFilter()");
        filterChain.doFilter(servletRequest, servletResponse);
        System.out.println("response - Test Filter doFilter()");
    }
}
@SpringBootApplication
@ServletComponentScan // μ„œλΈ”λ¦Ώμ»΄ν¬λ„ŒνŠΈμŠ€μΊ” μΆ”κ°€!
public class Application {

    public static void main(String[] args) {
        Application.run(Application.class, args);
    }

}

μ°Έκ³