728x90

Backend/Spring+Boot 64

SpringBoot ServletFilter 구현

전체코드는 아래 github을 참고하도록 한다. github.com/mypiece/springboot-example/tree/master/filter-example mypiece/springboot-example 스프링부트 예제. Contribute to mypiece/springboot-example development by creating an account on GitHub. github.com SpringBoot 환경에서 ServletFilter 자체는 아래와 같이 간단하게 정의 가능하다. public class TestFilter extends OncePerRequestFilter { protected void doFilterInternal( HttpServletRequest request ,..

Backend/Spring+Boot 2021.03.16

@ServletComponentScan

SpringBoot 환경에서 basePackages 하위 서블릿컴포넌트(필터, 서블릿, 리스너)를 스캔해서 빈으로 등록한다. 다만 서블릿컴포넌트를 그냥 등록하는게 아니고 해당 서블릿컴포넌트 클래스에는 아래와 같이 별도의 어노테이션이 추가되어 있어야 한다. 필터: @WebFilter 서블릿: @WebServlet 리스너: @WebListener 이는 SpringBoot의 내장톰캣을 사용하는 경우에만 동작한다.

Backend/Spring+Boot 2021.03.16

Filter, Interceptor, AOP

Filter, Interceptor, AOP 모두 어떠한 행동을 하기 전/후에 처리될 공통프로세스를 별도로 정의해 놓은 것들이다. ​ 가장 큰 차이는 적용시점으로 Spring 환경을 기준으로 보면 DispatcherServlet 진입전 Filter 가 적용되고, DispatcherServlet 진입후 Controller 메소드 진입 전에 Interceptor 가 적용되고 이어서 AOP가 적용된다. 그렇기 때문에 Interceptor, AOP에서는 Spring Bean을 참조할 수 있지만 Filter에서는 참조할 수 없다. ​ 일반적으로 Filter는 Request, Response 자원 자체를 변경하는 용도로 한글처리를 위한 인코딩이나 XSS 공격 방어를 위한 HTML 태그 치환에 사용된다. ​ Inte..

Backend/Spring+Boot 2021.03.16

Spring DB 연동

SpringBoot 에서는 너무 많은 것을 자동으로 처리해주기 때문에 여기에서는 이해를 위해 Spring에서 JavaConfig로 직접 연동하는 법을 알아보자. 다만 Jpa 가 활성화 되기 시작했을 무렵 SpringBoot도 함께 활성화 되었고 Jpa를 사용하는 프로젝트는 대부분 SpringBoot를 사용할 것이다. 반면 Mybatis는 SpringBoot가 나오기 전부터 사용되던 전통적인 퍼시스턴스 프레임워크로 레거시 시스템들은 Spring+Mybatis 로 되어 있는 경우도 적지 않다. 이에 여기에서는 Mybatis만 연동 벙법만 살펴보고 추후 SpringBoot DB 연동에서는 Mybatis와 Jpa를 함께 살펴보도록 한다. 우선 Configuration 파일은 아래와 같이 정의한다. @Config..

Backend/Spring+Boot 2021.03.12
728x90