Spring
-
두개의 어노테이션은 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 -
RestTemplate 란?Spring 에서 간편하게 Rest 방식 API 를 호출할 수 있는 내장 클래스이다.Spring 3.0 부터 지원되며 응답은 Json, xml 모두 받을 수 있다.Rest API 요청 시 응답 받을 수 있도록 설계되어 있으며, HTTP 메소드(GET, POST, PUT, DELETE)들에적합한 여러 메소드들을 제공한다. RestTemplate 특징Rest API 를 간편하게 호출 후 응답 받을 수 있는 Spring 내장 클래스Spring 3.0 부터 지원하는 HTTP 통신 템플릿HTTP 요청 후 Json, XML, String 등 여러 형태로 응답 받을 수 있는 템플릿HTTP HEADER, Content-Type 등을 설정하여 외부 API 호출Server to Server 통신..
Spring RestTemplate 사용하기RestTemplate 란?Spring 에서 간편하게 Rest 방식 API 를 호출할 수 있는 내장 클래스이다.Spring 3.0 부터 지원되며 응답은 Json, xml 모두 받을 수 있다.Rest API 요청 시 응답 받을 수 있도록 설계되어 있으며, HTTP 메소드(GET, POST, PUT, DELETE)들에적합한 여러 메소드들을 제공한다. RestTemplate 특징Rest API 를 간편하게 호출 후 응답 받을 수 있는 Spring 내장 클래스Spring 3.0 부터 지원하는 HTTP 통신 템플릿HTTP 요청 후 Json, XML, String 등 여러 형태로 응답 받을 수 있는 템플릿HTTP HEADER, Content-Type 등을 설정하여 외부 API 호출Server to Server 통신..
2023.08.10 -
HttpMessageConverter 란? 클라이언트(웹브라우저) 측에서 데이터를 HTTP Request Body 로 넘길때 서버측에서 DTO 같은 객체에 변환하기 위해 사용한다. 또한 반대로 서버측에서 HTTP Response Body 로 응답 데이터를 클라이언트로 전달할 때 사용한다. 보통 서버측에서 받을때 주로 사용하는 건 @RequestBody 어노테이션과 클라이언트로 응답 데이터를 넘길때 @ResponstBody 를 사용한다. Spring MVC 요청/응답 과정 1. 클라이언트로부터 HTTP 요청이 들어오면 Front Controller 라고 불리우는 Dispatcher Servlet 이 받는다. * 클라이언트의 요청은 Front Controller 라고 하는 Dispatcher Servlet ..
HttpMessageConverter, DispatcherServlet 동작원리HttpMessageConverter 란? 클라이언트(웹브라우저) 측에서 데이터를 HTTP Request Body 로 넘길때 서버측에서 DTO 같은 객체에 변환하기 위해 사용한다. 또한 반대로 서버측에서 HTTP Response Body 로 응답 데이터를 클라이언트로 전달할 때 사용한다. 보통 서버측에서 받을때 주로 사용하는 건 @RequestBody 어노테이션과 클라이언트로 응답 데이터를 넘길때 @ResponstBody 를 사용한다. Spring MVC 요청/응답 과정 1. 클라이언트로부터 HTTP 요청이 들어오면 Front Controller 라고 불리우는 Dispatcher Servlet 이 받는다. * 클라이언트의 요청은 Front Controller 라고 하는 Dispatcher Servlet ..
2023.06.07 -
Interceptor 란사전적 의미로 "낚아채다" 라는 뜻처럼 사용자 요청이 Filter, DispatchServlet에 의해요청에 알맞는 컨트롤러를 찾아 컨트롤러에게 전달되기 전 요청(HttpRequest, HttpResponse)을낚아채어 개발자가 원하는 추가적인 작업을 진행하기 위해 사용한다. 위 이미지를 보면 사용자의 모든 요청을 Front Controller 라고 하는 DispatcherServlet이 받는다.요청받은 DispatcherServlet은 HandlerMapping 을 통해 요청에 맞는 적절한 Controller를 찾아요청을 넘기게 되는데 Controller로 요청을 넘기기전에 Interceptor가 요청을 가로챈다. 요청을 가로채어 필요한 작업을 진행한 후 다시 Controller..
HandlerInterceptor 사용하기Interceptor 란사전적 의미로 "낚아채다" 라는 뜻처럼 사용자 요청이 Filter, DispatchServlet에 의해요청에 알맞는 컨트롤러를 찾아 컨트롤러에게 전달되기 전 요청(HttpRequest, HttpResponse)을낚아채어 개발자가 원하는 추가적인 작업을 진행하기 위해 사용한다. 위 이미지를 보면 사용자의 모든 요청을 Front Controller 라고 하는 DispatcherServlet이 받는다.요청받은 DispatcherServlet은 HandlerMapping 을 통해 요청에 맞는 적절한 Controller를 찾아요청을 넘기게 되는데 Controller로 요청을 넘기기전에 Interceptor가 요청을 가로챈다. 요청을 가로채어 필요한 작업을 진행한 후 다시 Controller..
2023.03.14