Spring
-
classpath 란?classpath 는 어플리케이션이 실행될 때 참조하는 리소스 및 클래스 파일의 경로를 의미한다.Spring 에서 application.properties, application.yml, 템플릿 데이터, 정적 자원 등을 찾아야 할 때 사용하는기준 경로이다. Gradle 프로젝트의 경우build/ └── classes/ └── java/ └── main/ └── com/example/... Maven 프로젝트의 경우target/ └── classes/ └── com/example/... Spring 빌드 시 src/main/java 의 컴파일된 .class 파일 뿐만이 아니라 src/main/resources/ 에 위치..
Spring Boot 에서 classpath 의 의미와 경로classpath 란?classpath 는 어플리케이션이 실행될 때 참조하는 리소스 및 클래스 파일의 경로를 의미한다.Spring 에서 application.properties, application.yml, 템플릿 데이터, 정적 자원 등을 찾아야 할 때 사용하는기준 경로이다. Gradle 프로젝트의 경우build/ └── classes/ └── java/ └── main/ └── com/example/... Maven 프로젝트의 경우target/ └── classes/ └── com/example/... Spring 빌드 시 src/main/java 의 컴파일된 .class 파일 뿐만이 아니라 src/main/resources/ 에 위치..
2024.10.23 -
SessionManagementFilter세션 관리를 위한 필터로 Spring Security 에서 4가지 기능을 지원한다. 세션관리 : 인증 후 사용자의 세션 관리(등록, 조회, 삭제)동시 세션 제어 : 동일 계정에 대한 세션 관리세션 고정 보호 : 인증 후 세션 쿠키를 재발급하여 세션 쿠키 조작 공격을 방지세션 생성 정책 : Always, If_Required, Never, Stateless 여기서 동시세션제어는 ConcurrentSessionFilter 가 담당한다. ConcurrentSessionFilterConCurrentSessionFilter 는 SessionRegistry 를 이용하여 사용자의 로그인 동시세션 제어를 한다.사용자 요청이 들어올 때마다 매번 세션이 만료(expired) 되었..
Spring Security SessionManagementFilter, ConcurrentSessionFilter(동시세션제어)SessionManagementFilter세션 관리를 위한 필터로 Spring Security 에서 4가지 기능을 지원한다. 세션관리 : 인증 후 사용자의 세션 관리(등록, 조회, 삭제)동시 세션 제어 : 동일 계정에 대한 세션 관리세션 고정 보호 : 인증 후 세션 쿠키를 재발급하여 세션 쿠키 조작 공격을 방지세션 생성 정책 : Always, If_Required, Never, Stateless 여기서 동시세션제어는 ConcurrentSessionFilter 가 담당한다. ConcurrentSessionFilterConCurrentSessionFilter 는 SessionRegistry 를 이용하여 사용자의 로그인 동시세션 제어를 한다.사용자 요청이 들어올 때마다 매번 세션이 만료(expired) 되었..
2024.09.06 -
HttpServletResponse 의 sendRedirect 메서드Java Servlet 에서 페이지 이동을 위해 redirect 하는 메서드이다.Http 프로토콜을 사용하여 정해진 규칙으로 서버가 클라이언트에게 특정 URL 로 이동하라고 요청을 보낸다. sendRedirect 메서드를 사용하게 되면 서버에서는 클라이언트에게 응답 상태값을 302 와 함께 이동할URL 정보를 Location 헤더값에 담아 전송한다.클라이언트 브라우저는 서버로부터 받은 상태값이 302 일 경우 Location 헤더 값으로 재요청을 보내어Redirect 하게 된다. 예시)개발환경 : Spring Boot, JSP 위처럼 jsp 페이지가 2개가 존재한다. test.jspasdfsadfasdfasd response.sendRe..
HttpServletResponse 의 sendRedirect() 와 RequestDispatcher 의 forward() 메서드 차이HttpServletResponse 의 sendRedirect 메서드Java Servlet 에서 페이지 이동을 위해 redirect 하는 메서드이다.Http 프로토콜을 사용하여 정해진 규칙으로 서버가 클라이언트에게 특정 URL 로 이동하라고 요청을 보낸다. sendRedirect 메서드를 사용하게 되면 서버에서는 클라이언트에게 응답 상태값을 302 와 함께 이동할URL 정보를 Location 헤더값에 담아 전송한다.클라이언트 브라우저는 서버로부터 받은 상태값이 302 일 경우 Location 헤더 값으로 재요청을 보내어Redirect 하게 된다. 예시)개발환경 : Spring Boot, JSP 위처럼 jsp 페이지가 2개가 존재한다. test.jspasdfsadfasdfasd response.sendRe..
2024.02.13 -
두개의 어노테이션은 Spring 컨테이너가 Spring 컨테이너에 등록되어 있는 Bean 객체를 찾아 자동으로의존성을 주입해준다. @Autowired Bean 객체 찾는 순서타입 > 이름 > @Qualifier > 실패@Autowired 는 주입하려고 하는 객체의 타입을 확인해 컨테이너에서 Bean 객체를 찾는다.만약 타입이 존재하지 않으면 @Autowired 에 설정된 이름으로 Bean 객체를 찾고 이름이 없을 경우@Qualfier 어노테이션 유무를 찾아 주입한다. 없을 경우 예외가 발생한다. 생성자, 필드, 메서드 모두 적용 가능하다. Spring Boot 가 아닌 Spring 프레임워크일 경우 xml 설정 파일에 구문을 넣어준다. @Servicepublic class UserDetailsServi..
@Autowired 와 @Resource 차이점두개의 어노테이션은 Spring 컨테이너가 Spring 컨테이너에 등록되어 있는 Bean 객체를 찾아 자동으로의존성을 주입해준다. @Autowired Bean 객체 찾는 순서타입 > 이름 > @Qualifier > 실패@Autowired 는 주입하려고 하는 객체의 타입을 확인해 컨테이너에서 Bean 객체를 찾는다.만약 타입이 존재하지 않으면 @Autowired 에 설정된 이름으로 Bean 객체를 찾고 이름이 없을 경우@Qualfier 어노테이션 유무를 찾아 주입한다. 없을 경우 예외가 발생한다. 생성자, 필드, 메서드 모두 적용 가능하다. Spring Boot 가 아닌 Spring 프레임워크일 경우 xml 설정 파일에 구문을 넣어준다. @Servicepublic class UserDetailsServi..
2024.01.31 -
개발환경 : Spring 4.4 버전, JDK 1.8 문제 좀 오래된 버전의 프로젝트를 실행 했을때 나오는 에러였다. STS 버전은 현재날짜 최신버전인 sts-4.18.1.RELEASE 였다. 에러 내용은 아래와 같다. 이 문제는 STS ini 파일을 보면 vmargs 에 들어갈 내용에 --add-opens 가 포함되어 있다. STS 버전은 높지만 Java 8 버전에서 사용할 수 없는 옵션이 있었다. Java 8 에서는 --add-opens 옵션을 지원하지 않는다고 한다. 해결방법 프로젝트의 vm args 값을 수정 해줘야한다. 프로젝트 마우스 오른쪽 버튼 > Run As > Run Configurations... > 톰캣 또는 Spring Boot App 에서 프로젝트 선택 > Arguments > V..
Java 1.8 버전 에러 - Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED개발환경 : Spring 4.4 버전, JDK 1.8 문제 좀 오래된 버전의 프로젝트를 실행 했을때 나오는 에러였다. STS 버전은 현재날짜 최신버전인 sts-4.18.1.RELEASE 였다. 에러 내용은 아래와 같다. 이 문제는 STS ini 파일을 보면 vmargs 에 들어갈 내용에 --add-opens 가 포함되어 있다. STS 버전은 높지만 Java 8 버전에서 사용할 수 없는 옵션이 있었다. Java 8 에서는 --add-opens 옵션을 지원하지 않는다고 한다. 해결방법 프로젝트의 vm args 값을 수정 해줘야한다. 프로젝트 마우스 오른쪽 버튼 > Run As > Run Configurations... > 톰캣 또는 Spring Boot App 에서 프로젝트 선택 > Arguments > V..
2024.01.31 -
@ControllerAdviceSpring 에서 공통 및 전역적으로 예외처리, ModelAttribute 등 핸들링 하기 위해@ControllerAdvice 어노테이션을 사용할 수 있다.모든 @Controller 또는 @RestController 에 적용되는 컴포넌트이다.예외 처리(@ExceptionHandler)바인딩 설정(@InitBinder)모델 속성 추가(@ModelAttribute) 예외처리(@ExceptionHandler)예외처리를 위한 try-catch 문을 사용하는게 아닌 전역적으로 예외처리를 하고 싶을때 사용한다. package com.obo.controller.global;import org.springframework.http.HttpStatus;import org.springfram..
@ControllerAdvice@ControllerAdviceSpring 에서 공통 및 전역적으로 예외처리, ModelAttribute 등 핸들링 하기 위해@ControllerAdvice 어노테이션을 사용할 수 있다.모든 @Controller 또는 @RestController 에 적용되는 컴포넌트이다.예외 처리(@ExceptionHandler)바인딩 설정(@InitBinder)모델 속성 추가(@ModelAttribute) 예외처리(@ExceptionHandler)예외처리를 위한 try-catch 문을 사용하는게 아닌 전역적으로 예외처리를 하고 싶을때 사용한다. package com.obo.controller.global;import org.springframework.http.HttpStatus;import org.springfram..
2023.08.28