Java
-
ServletListenerRegistrationBean 이란?Spring Boot 에서 서블릿 스펙의 Listener(예: HttpSessionListener, ServletContextListener) 를 서블릿 컨테이너에등록하기 위한 Spring Bean 이다. 즉, 서블릿 컨테이너가 감지할 수 있도록 Spring Bean 을 리스너로 등록해주는 중간 다리 역할을 한다. 🔄 동작 흐름 요약 HttpSessionListener 같은 서블릿 리스너를 구현하거나 이미 구현된 클래스(HttpSessionEventPublisher) 를 사용한다.ServletListenerRegistrationBean 으로 위 클래스를 Spring Bean 으로 등록한다.Spring Boot 는 내장 톰캣(또는 서블릿 컨..
ServletListenerRegistrationBean<T extends EventListener>ServletListenerRegistrationBean 이란?Spring Boot 에서 서블릿 스펙의 Listener(예: HttpSessionListener, ServletContextListener) 를 서블릿 컨테이너에등록하기 위한 Spring Bean 이다. 즉, 서블릿 컨테이너가 감지할 수 있도록 Spring Bean 을 리스너로 등록해주는 중간 다리 역할을 한다. 🔄 동작 흐름 요약 HttpSessionListener 같은 서블릿 리스너를 구현하거나 이미 구현된 클래스(HttpSessionEventPublisher) 를 사용한다.ServletListenerRegistrationBean 으로 위 클래스를 Spring Bean 으로 등록한다.Spring Boot 는 내장 톰캣(또는 서블릿 컨..
2025.07.28 -
Spring 컨테이너의 Bean 과 서블릿 컨테이너 수준의 컴포넌트 차이는등록 주체, 라이프사이클, DI 사용 가능성, 관리 방식 등에서 뚜렷한 차이가 있다. 핵심 차이 요약 항목Spring Bean서블릿 컨테이너 컴포넌트(@WebServlet, @WebFilter, @WebListener)관리 주체Spring 컨테이너(ApplicationContext)Servlet 컨테이너(Tomcat, Jetty 등)등록 방법@Component, @Controller, @Service, @Repository, @Configuration+@Bean@WebServlet, @WebFilter, @WebListenerDI 가능 여부가능 (@Autowired, 생성자 주입)기본적으로 불가능(Spring 관리 대상이 아님)..
Spring 컨테이너의 Bean 과 서블릿 컨테이너 수준의 컴포넌트 차이Spring 컨테이너의 Bean 과 서블릿 컨테이너 수준의 컴포넌트 차이는등록 주체, 라이프사이클, DI 사용 가능성, 관리 방식 등에서 뚜렷한 차이가 있다. 핵심 차이 요약 항목Spring Bean서블릿 컨테이너 컴포넌트(@WebServlet, @WebFilter, @WebListener)관리 주체Spring 컨테이너(ApplicationContext)Servlet 컨테이너(Tomcat, Jetty 등)등록 방법@Component, @Controller, @Service, @Repository, @Configuration+@Bean@WebServlet, @WebFilter, @WebListenerDI 가능 여부가능 (@Autowired, 생성자 주입)기본적으로 불가능(Spring 관리 대상이 아님)..
2025.07.23 -
@ServletComponentScan 이란?@WebServlet, @WebFilter, @WebListener 같은 Servlet 3.0+ 에서 제공하는 어노테이션 기반의서블릿 컴포넌트들을 자동으로 스캔하고 등록해주는 역할을 한다. 기본 개념Spring Boot는 기본적으로 Servlet 컴포넌트를 @Bean 으로 등록하거나 FilterRegistrationBean,ServletRegistrationBean 등을 사용해서 등록하길 권장한다. 하지만, 기존의 서블릿 스펙에 맞게 @WebServlet, @WebFilter 등으로 작성된 클래스를 사용할 경우이 클래스들을 자동으로 등록되려면 @ServletComponentScan 어노테이션이 필요하다. 주요 대상 어노테이션@ServletComponentS..
@ServletComponentScan 이란?@ServletComponentScan 이란?@WebServlet, @WebFilter, @WebListener 같은 Servlet 3.0+ 에서 제공하는 어노테이션 기반의서블릿 컴포넌트들을 자동으로 스캔하고 등록해주는 역할을 한다. 기본 개념Spring Boot는 기본적으로 Servlet 컴포넌트를 @Bean 으로 등록하거나 FilterRegistrationBean,ServletRegistrationBean 등을 사용해서 등록하길 권장한다. 하지만, 기존의 서블릿 스펙에 맞게 @WebServlet, @WebFilter 등으로 작성된 클래스를 사용할 경우이 클래스들을 자동으로 등록되려면 @ServletComponentScan 어노테이션이 필요하다. 주요 대상 어노테이션@ServletComponentS..
2025.07.23 -
RequestContextHolder 클래스란?Spring MVC 에서 현재 HTTP 요청(request) 과 관련된 컨텍스트 정보를 Thead Local 방식으로 관리해주는유틸리티 클래스이다.즉, 현재 처리중인 요청의 HttpServletRequest 나 HttpSession 에 접근할 수 있게 도와주는 도구입니다. 📌 주요 목적Spring 에서는 HTTP 요청이 하나의 스레드에서 처리되므로, RequestContextHolder 를 통해 전역 어디에서든요청 정보에 접근할 수 있습니다. 🔍 currentRequestAttributes() 메서드RequestAttributes attrs = RequestContextHolder.currentRequestAttributes(); 현재 스레드에 바인딩된 ..
RequestContextHolderRequestContextHolder 클래스란?Spring MVC 에서 현재 HTTP 요청(request) 과 관련된 컨텍스트 정보를 Thead Local 방식으로 관리해주는유틸리티 클래스이다.즉, 현재 처리중인 요청의 HttpServletRequest 나 HttpSession 에 접근할 수 있게 도와주는 도구입니다. 📌 주요 목적Spring 에서는 HTTP 요청이 하나의 스레드에서 처리되므로, RequestContextHolder 를 통해 전역 어디에서든요청 정보에 접근할 수 있습니다. 🔍 currentRequestAttributes() 메서드RequestAttributes attrs = RequestContextHolder.currentRequestAttributes(); 현재 스레드에 바인딩된 ..
2025.07.21 -
리스너(Linstener)란?웹 어플리케이션에서 특정 이벤트(세션 생성, 파괴, 요청 시작, 종료 등)를 감지하고 그에 대한 처리를 하기 위한컴포넌트이다. 즉, Spring Boot 또는 Servlet 기반 웹 어플리케이션에서는 리스너(Linstener) 를 사용해서 다음과 같은웹 라이프사이클 이벤트를 감지할 수 있다. 🔍 리스너 종류리스너 인터페이스설명HttpSessionListener세션 생성 / 삭제 감지HttpSessionAttributeListener세션 속성 추가/변경/삭제 감지SevletContextLisnter웹 어플리케이션 시작/종료 감지ServletRequestListener요청(Request) 시작/종료 감지 🧩 HttpSessionEventPublisher 란?HttpSes..
Spring Boot 서블릿 기반의 리스너(Servlet Listener) 와 HttpSessionEventPublisher리스너(Linstener)란?웹 어플리케이션에서 특정 이벤트(세션 생성, 파괴, 요청 시작, 종료 등)를 감지하고 그에 대한 처리를 하기 위한컴포넌트이다. 즉, Spring Boot 또는 Servlet 기반 웹 어플리케이션에서는 리스너(Linstener) 를 사용해서 다음과 같은웹 라이프사이클 이벤트를 감지할 수 있다. 🔍 리스너 종류리스너 인터페이스설명HttpSessionListener세션 생성 / 삭제 감지HttpSessionAttributeListener세션 속성 추가/변경/삭제 감지SevletContextLisnter웹 어플리케이션 시작/종료 감지ServletRequestListener요청(Request) 시작/종료 감지 🧩 HttpSessionEventPublisher 란?HttpSes..
2025.07.21 -
환경 : Spring Boot3, Java17, Thymeleaf, dialect layout Spring Boot 에서 Thymeleaf 를 사용하여 axios 라이브러리를 script 태그를 통해 import 시키려다가파일을 찾질 못해서 작성하게 됐다. ✅ 1. 기본 동작: /static/** → /로 매핑됨 Spring Boot 는 아래 디렉토리들을 기본적으로 정적 리소스 루트로 인식한다.src/main/resources/staticsrc/main/resources/publicsrc/main/resources/resourcessrc/main/resources/META-INF/resources예를 들어 아래 위치에 JS 파일이 있다고 가정하면src/main/resources/static/js/app..
Spring Boot 정적 리소스 설정환경 : Spring Boot3, Java17, Thymeleaf, dialect layout Spring Boot 에서 Thymeleaf 를 사용하여 axios 라이브러리를 script 태그를 통해 import 시키려다가파일을 찾질 못해서 작성하게 됐다. ✅ 1. 기본 동작: /static/** → /로 매핑됨 Spring Boot 는 아래 디렉토리들을 기본적으로 정적 리소스 루트로 인식한다.src/main/resources/staticsrc/main/resources/publicsrc/main/resources/resourcessrc/main/resources/META-INF/resources예를 들어 아래 위치에 JS 파일이 있다고 가정하면src/main/resources/static/js/app..
2025.06.27