IT/Spring83 Interceptor를 사용하여 Request/Reponse Logging Interceptor를 사용하여 Request/Reponse Logging 하는 방법에 대해 알아보자 이 글에선 예제 및 테스트용으로 작성하였기에 validation 처리는 따로 하지 않는다. Interceptor에서 logging을 할 때, Body를 읽지 않는 경우에 발생하는 문제가 있다. 만약 필요하지 않다면 바로 logging을 적용하면된다. body 사용하지 않는 경우 class ApiLogInterceptor : HandlerInterceptor { private val logger = KotlinLogging.logger {} override fun preHandle(request: HttpServletRequest, response: HttpServletResponse, handler: A.. 2023. 9. 20. Private Method Test 하기 Test 코드를 작성하다보면 private method를 테스트해야할 경우가 생긴다.이러한 경우 Reflection을 사용하면 테스트가 가능하다.여기서는 Spring의 ReflectionTestUtils와 Java의 Reflection을 사용하는 방법에 대해 작성하였다.data class Human( val age: Int) { private fun isAdult(): Boolean { return age > 19 }}import org.junit.jupiter.api.Assertions.assertFalseimport org.junit.jupiter.api.Assertions.assertTrueimport org.junit.jupiter.api.Testimport org.s.. 2023. 9. 14. Annotation Bean register ApplicationContext 의 구현체 GenericXmlApplicationContext 의존성 주입을 지원하기 위한 클래스이며, XML 기반의 설정 파일을 사용하여 Bean 을 관리하게 해준다. AnnotationConfigApplicationContext XML이 아닌 어노테이션을 통해 Bean 을 관리하게 해준다. AnnotationConfigApplicationContext public class AnnotationConfigApplicationContext extends GenericApplicationContext implements AnnotationConfigRegistry { @Override public void register(Class... componentClasses) {.. 2023. 9. 7. security 6.1 마이그레이션 spring boot 3.1 로 변경하면서 security에 deprecated 된 코드들이 있다. 예시는 아래와 같으며 수정을 원하는 경우 configurer 를 사용하면되며 기존 설정은 Customizer.withDefaults() 을 사용하면된다. # 기존 코드 public SecurityFilterChain filterChain(final @NotNull HttpSecurity http) throws Exception { http .httpBasic().disable() .csrf().disable() .cors().and() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeHtt.. 2023. 5. 19. 이전 1 2 3 4 5 6 ··· 21 다음