본문 바로가기

spring4

[Spring] 인터셉터(Interceptor) 적용 ✔ InterceptorIntercept은 (중간에) 가로막다[가로채다] 라는 의미이고, 의미와 같이 사용자가 서버로 어떠한 요청을 보낸다.서버에서는 DispatcherServlet이 HandlerMapping을 통해 컨트롤러를 찾아 실행하기 전에, 인터셉터가 등록되어 있다면 순차적으로 인터셉터를 거쳐서 컨트롤러가 실행이 된다. 등록된 인터셉터가 없다면 바로 컨트롤러가 실행된다.인터셉터의 정식 명칭은 HandlerInterceptor이고, HandlerInterceptor에는 3개의 메서드가 있다.✔ Interceptor 구현인터셉터를 구현하기 위해서는 HandlerInterceptor 인터페이스의 3개 메서드를 오버라이딩해서 사용할 수 있고,인터셉터를 따로 등록해 줘야 한다.@Componentpubli.. 2022. 4. 17.
JPA @MappedSuperclass @MappedSuperclass엔티티를 구현하다 보면 보통 공통적으로 사용하는 속성들이 존재한다.가장 많이 나오는 게 등록일, 수정일, 등록자, 수정자 등이 이에 해당한다.이렇듯 공통 매핑 정보를 부모 클래스에서 상속받아 사용할 때 쓰인다.부모 클래스는 테이블과 매핑하지 않고 자식 클래스에게 매핑 정보만 제공하는 것이다.(자식 클래스에서는 상속한 필드들도 칼럼으로 인식한다)@MappedSuperclass를 선언한 클래스는 엔티티가 아니다.그리고 직접 생성해서 사용할 일이 없으므로 추상 클래스(abstract)로 만드는 것을 권장한다. 2022. 3. 7.
JUnit @Before & @After @Before 애노테이션을 지금까지 테스트 실행 전 실행이 된다는 것 정도만 알고 있었는데,박재성 님의 책을 통해 좋은 내용을 알게 되었다.JUnit을 사용할 때 인스턴스 생성을 위해 @Before 애노테이션을 활용한다.@Before 애노테이션을 사용하지 않고 필드(field)로 구현하는 방법도 단위 테스트는 성공한다.각 단위 테스트를 실행할 때마다 인스턴스를 생성하는 것은 똑같기 때문이다.위와 같이 작성해도 테스트는 성공한다.하지만, JUnit은 초기화 작업을 위와 같이 구현하는 것을 추천하지 않는다.인스턴스를 매 테스트마다 생성하는 이유는 테스트 메서드를 실행할 때 인스턴스의 상태 값이 변경되어 다음 테스트 메서드를 실행할 때 영향을 미칠 수 있기 때문이다. 이와 같이 테스트 실행 순서나 인스턴스 상.. 2022. 3. 7.
Spring Boot 자동 환경 설정 Spring Boot 자동 환경 설정 이해하기 Spring Boot 자동 설정은 Web, H2, JDBC 등 100여 개의 자동 설정을 제공한다.새로 추가되는 라이브러리(JAR)는 Spring Boot 자동 설정 의존성에 따라서 설정이 자동 적용된다. 자동 설정은 @EnableAutoConfiguration 혹은 @SpringBootApplication 중 하나를 사용하면 된다.@EnableAutoConfiguration 사용 시 @Configuration와 같이 사용해야 한다. SpringBoot Version은 2.4.4 버전이다. @SpringBootApplication spring-boot-autoconfigure-2.4.4.jar/org/springframework/boot/autoconfigu.. 2021. 4. 10.