Spring (52) 썸네일형 리스트형 WebMvcConfigurer - HttpMessageConverter HttpMessageConverter 는 우리가 만든 컨트롤러에서 @RequestBody 로 요청 메세지를 읽어오거나 @ResponseBody 로 응답을 작성할때 사용한다. 문자열을 변환하거나 문자열이 JSON 이면 객체로변환하거나, XML 을 객체로 변환하거나가 가능해진다. 기본으로 등록 되어있는 컨버터 들이고, 괄호로 되어있는건 pom.xml 에 등록이 되면 설정이 되는 얘들이다. extendMessageConverters 로 WebMvcConfigurer 에서 설정 할 수 있지만, 가장 추천하는 방법은 의존성 추가로 설정을 추가 하는 방식이다. 그래서 위와 같은 컨버터를 구현하는 경우는 거의 없다. JSON 용 메시지 컨버터를 만들어보자 부트에서는 이미 jackson 의존성이 추가 되어있어서, 바로.. WebMvcConfigurer - Resource Handler 이미지, 자바스크립트 , html 같은 정적인 핸들러를 처리할 때 사용하는 핸들러 리소스 핸들러는 톰켓 같은 서블릿 컨테이너가 제공하는 디폴트 리소스 핸들러가 있다. 스프링 부트에서는 리소스 핸들러가 최하위 우선 순위를 갖는다. 다른 핸들러 맵핑들이 먼저 요청을 처리하고, 마지막으로 리소스 핸들러가 적용 어떤 요청 패턴을 적용할 건지, 어디서 리소스를 찾을 건지, 캐싱을 해줄지 등 리소스 핸들러를 설정 할 수 있다. WebMvcConfigurer - Converter 도메인 클래스 컨버터 Jpa 가 사용하는 Repository 를 통해서 Id에 해당하는 엔티티를 읽어 올 수 있다, Entity 생성 컨버팅 할때 Repository 가 필요하다 앞에는 엔티티 객체, 뒤에는 키값 타입 적어줌 Spring - War 파일 배포 하기 외부 톰캣을 사용하게 바꿨을때 서블릿 이니셜라이저로 실행하게 된다. Spring Boot 에서의 MVC 설정 Boot 에서의 핸들러 맵핑 RequestMapping 어노테이션 기반으로 맵핑해주고, WelcomePage 는 index 를 찾아주는 맵핑 실제 요청을 처리해주는 RequestMappingHandlerAdapter ContentNegotiatingViewResolver가 나머지를 delegating 하고 있다. 스프링 부트의 ConditionalOnMissingBean 설정으로 인해 DelagatingWebMvc 설정이 있으면 부트 설정을 따르지 않게 설정이 되어 있다. 따라서 , @EnableWebMvc 설정을 붙이면 부트 설정이 없어진다. 2번째 방법이 boot의 커스텀 설정 방법이다. 스프링 MVC 설정 - @EnableWebMvc @EnableWebMvc 를 쓰면 DelegatingWebMvc 를 impotring 한다. 저것도 설정인데, 들어가보면 이렇게 HandlerMapping도 있고, HandlerMapping 에 인터셉터도 잡혀 있고 여러 설정들이 있다. 특히, 여기를 봐보면 jackson 이 있으면 추가 설정을 하게 되어 있는데, 핸들러어뎁터에서는 들어온 요청이 json 이면 객체로 변경하고 객체면 다시 json 으로 변경 할 수 있게 하는 메세지 컨버터 설정을 하게 되는데, 여기서 잭슨이 있으면 추가 설정을 하게 되어있다. 결론! EnableWebMvc 어노테이션을 사용하면 DelegationWebMvcConfigurer 를 가져오는데 이걸 통해 손쉽게 설정을 할 수 있다. 여기에 우리가 추가할 설정 조금씩을 구현해서.. Spring Core - 프록시 AOP Contents 스프링 AOP의 특징 어노테이션 기반의 AOP 스프링 AOP 의 특징 프록시 기반의 AOP 구현 스프링 빈에만 AOP 를 적용할 수 있다. 프록시 패턴 프록시 패턴에는 인터페이스가 있다. 클라이언트는 이 인터페이스 타입으로 Proxy 객체를 사용하게 된다. Proxy객체가 실제 객체를 감싸서 실행을 하게 된다. 근데 이렇게 프록시 패턴을 직접 구현을 하면 여러 문제점이 생긴다 -프록시 패턴을 직접 구현하면 생기는 문제점 매번 이런 프록시 클래스를 작성해야하나? 한 Real Subject 가 아니라 여러 클래스에 advice를 적용하고 싶다면..? 위 같은 문제들이 생겨났고 이걸 해결하기 위해 등장한게 Spring AOP 다 스프링 AOP 에서는 동적으로 프록시를 생성해서 이런 문제들을 해.. Spring Core - AOP의 개념 Contents AOP란? AOP 용어 AOP 적용 방법 AOP란? 흩어진 AspectJ를 모듈화 할 수 있는 프로그래밍 기법이다. Spring AOP란? AOP 의 구현체를 제공하고, Java 의 만들어져있는 AOP 구현체 AspectJ 와 연동해서 사용할 수 있는 기능도 제공하고 스프링 자체에서 구현한 Spring AOP 기능을 활용 할 수 있게 한다. 이걸 기반으로 Spring Transaction 이나 여러가지 다른 기능들이 적용이 되고 있다. 캐시기능도 마찬가지 여러 클래스에 걸쳐서 사용되는 비슷한 코드들이 있다. 가령, 트랜잭션을 생각해보자 A,B,C 모두 트랜잭션이 필요하다고 했을때 트랜잭션 처리가 어떻게 되냐하면 보통 , set Auto commit 을 false로 만들고, query 실행.. 이전 1 2 3 4 5 6 7 다음