728x90
반응형

0+ 스프링 49

[스프링 Core] @Configuration를 사용하면 싱글톤을 유지할 수 있는 이유(CGLIB)

[스프링 Core] @Configuration를 사용하면 싱글톤을 유지할 수 있는 이유(CGLIB) 미리 보는 결론 @Configuration은 싱글톤을 위해서 존재합니다. @Bean만 사용해도 스프링 빈으로 등록이 가능 @Configuration을 사용하면 바이트 코드를 조작하는 CGLIB를 사용하여 클래스를 상속받는 프록시 객체를 만들어서 스프링 빈을 싱글톤으로 관리할 수 있게 해준다. 스프링 설정 정보는 반드시 @Configuration을 사용하자! @Configuration 예시 스프링 컨테이너는 기본값으로 모든 인스턴스를 싱글톤으로 관리합니다. 그런데 아래와 같은 코드를 보면 좀 이상하지 않나요? ApplicationConfig @Configuration public class Applicati..

[스프링 MVC] 어떻게 컨트롤러는 다양한 종류의 파라미터를 받아서 처리할 수 있을까? 🤔

[스프링 MVC] 어떻게 컨트롤러는 다양한 종류의 파라미터를 받아서 처리할 수 있을까? 스프링을 이용해서 개발하다보면 컨트롤러에 알맞은 어노테이션면 설정하면 알아서 요청, 응답 파라미터가 변환되는 것을 알수 있습니다. 그런데 어떻게 스프링은 알아서 척척 요청, 응답 파라미터를 변환하는 걸까요? 🤔 미리 보는 결론 RequestMappingHandlerAdapter 동작 방식 요청의 경우 @RequestBody를 처리하는 RequestResponseBodyMethodProcessor(ArgumentResolver)가 존재하고, HttpEntity를 처리하는 HttpEntityMethodProcessor(ArgumentResolver)가 있습니다. 이러한 ArgumentResolver들이 HTTP 메시지 컨..

[스프링 MVC] 서블릿 필터가 있는데 인터셉터는 왜 나온거지?

[스프링 MVC] 서블릿 필터가 있는데 인터셉터는 왜 나온거지? 먼저 보는 결론 필터와 스프링 인터셉터는 웹과 관련된 👀 공통 관심사를 해결하기 위한 기술입니다. 인터셉터와 필터는 관리되는 영역이 다릅니다. 필터는 서블릿 컨테이너에서 관리되지만, 인터셉터는 스프링 컨테이너에서 관리됩니다. 따라서 인터셉터는 스프링이 처리해주는 내용을 적용받을 수 있지만, 필터는 적용받을 수 없습니다. 가장 대표적으로 필터 기술은 스프링에 의한 예외처리가 되지 않는다는 것 입니다. 그런데 현재는 필터를 스프링 빈으로 등록할 수 있습니다. 그 이유는 여기를 참고하시면 됩니다.^^ 서블릿 필터를 어떻게 스프링 빈으로 관리할 수 있을까? [스프링 MVC] 서블릿 필터를 어떻게 스프링 빈으로 관리할 수 있을까? [스프링 MVC] ..

[스프링 MVC] 서블릿 필터 예외처리 방법

[스프링 MVC] 서블릿 필터 예외처리 방법 RestControllerAdvice로 서블릿 필터 예외처리가 안되는 이유 🥲 일반적으로 스프링을 사용하면 ControllerAdvice와 ExceptionHandler를 이용하여 예외처리를 기능을 사용합니다. (이를 통해 예외가 서블릿으로 전달되지 않고 처리됩니다.^^) @RestControllerAdvice public class BasicExceptionHandler { @ExceptionHandler(BasicException.class) public ResponseEntity basicExceptionHandle(BasicException e) { return new ResponseEntity(e.getMessage(), HttpStatus.BAD_R..

[스프링 MVC] 서블릿 필터를 어떻게 스프링 빈으로 관리할 수 있을까?

[스프링 MVC] 서블릿 필터를 어떻게 스프링 빈으로 관리할 수 있을까? 서블릿 필터는 서블릿 컨테이너 영역입니다. 그런데 우리는 서블릿 필터 구현체를 작성하고 빈으로 등록할 수 있습니다. 필터 인터페이스 public interface Filter { public default void init(FilterConfig filterConfig) throws ServletException {} public void doFilter(ServletRequest request, ServletRpesponse response, FilterChain chain) throws IOException, SevletException; public default void destory() {} } 필터 인터페이스를 구현하고 ..

[스프링 MVC] XML 데이터 파싱(RestTemplate)

[스프링 MVC] XML 데이터 파싱(RestTemplate) 요즘 대부분의 HTTP API는 JSON 형식을 지원합니다. 하지만, 프로젝트를 진행하다보면 XML 형식의 데이터를 파싱해야하는 경우가 생깁니다. 😭 XML 데이터를 파싱하는 방법에 대해서 소개하겠습니다. MessageConverter 먼저 MessageConverter에 대해서 알아야 합니다.^^ HTTP API처럼 (JSON, XML 등등…)데이터를 HTTP 메시지 body에서 직접 읽거나 사용하는 경우HTTP 메시지 컨버터가 기능을 제공하여 편리합니다.^^ MessageConverter가 뭘까요? 🤔 스프링 MVC 내부에서 HTTP 메시지 바디를 읽어 문자나 객체로 변환해서 전달해줍니다. 이때, HttpMessageConverter 라는..

[스프링 MVC] Java에서 서블릿이 등장한 이유(Feat. 서블릿 기초 개념)

[스프링 MVC] Java에서 서블릿이 등장한 이유(Feat. 서블릿 기초 개념) 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 이 포스팅은 위 강의를 참고하여 작성하였습니다. 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 서블릿에 대해서 공부하기 전에 먼저 WAS에 대한 개념이 있어야 합니다. 그래서 먼저 WAS에 대해서 간단하게 소개하겠습니다.🤵🏻 우리는 하루에도 수십, 수백번 인터넷 🌐 에 접속합니다. 인터넷에 접속하여 원하는 정보..

[JPA] JPQL 기본 개념과 예제

[JPA] JPQL 기본 개념과 예제 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 이 글은 인프런에서 제공하는 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참고했고 강의 내용을 다시 복습하면서 정리하려는 목적으로 작성합니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com JPA를 사용하면 엔티티 객체를 중심으로 개발을 해야합니다. 하지만 JPA만으로 100%의 문제를 해결할 수 없습니다. 🥲 그래서 다양한 쿼리 방법을 지원..

[JPA] 잘 설계한 ORM 애플리케이션은 매핑한 테이블의 수보다 클래스의 수가 더 많다.(값 타입, 엔티티 타입)

[JPA] 잘 설계한 ORM 애플리케이션은 매핑한 테이블의 수보다 클래스의 수가 더 많다.(값 타입, 엔티티 타입) 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 이 글은 인프런에서 제공하는 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참고했고 강의 내용을 다시 복습하면서 정리하려는 목적으로 작성합니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com JPA의 데이터 타입은 2가지로 분류 됩니다. 엔티티 타입 @Entity로 ..

[JPA] CASCADE(영속성 전이)와 고아객체

[JPA] CASCADE(영속성 전이)와 고아객체 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 이 글은 인프런에서 제공하는 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참고했고 강의 내용을 다시 복습하면서 정리하려는 목적으로 작성합니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 이번에 포스팅하는 내용은 연관관계 매핑과 전혀 관련 없는 내용입니다.^^ CASCADE 특정 엔티티를 영속 상태로 만들고, 연관된 엔티티도 함..

728x90
반응형