반응형

개발/Spring 72

[Spring] 제어의 역전(Inversion of Control)

제어의 역전(Inversion of Control)성격이 다른 책임이나 관심사는 분리해버려야 한다.팩토리 : 객체의 생성 방법을 결정하고 그렇게 만들어진 오브젝트를 돌려주는 것public Class DaoFactory { public UserDao userDao() { // 팩토리의 메소드는 UserDao 타입의 오브젝트를 어떻게 만들고, 어떻게 준비시킬지를 결정함 ConnectionMaker connectionMaker = new DConnectionMaker(); UserDao userDao = new UserDao(connectionMaker); return userDao; } } 위와 같은 코드를 작성해주었기에 Test 클래스에서는 이제 해당 팩토리 클래스의 메소드만 호출하면 되도록 바뀌었다.pu..

개발/Spring 2018.07.24

[Spring] Spring Pageable 사용법

Spring JPA 를 사용하면서 Pageable 이라는 것을 사용해보았는데 정말 편하다. 공식문서에 따르면 pageable 에서는 page, size, sort 라는 파라미터를 사용할 수 있다고 한다. 각 파라미터의 의미를 생각해보면 무척 쉽다. @GetMapping("/board") public List getAllBoard(Pageable pageable) throws Exception { return boardService.findAll(pageable); } 다음과 같이 controller 메소드에 파라미터로 Pageable 인터페이스를 받고, 해당 url 에 접속할 때 http://localhost:8080/board?size=3 와 같이 쿼리스트링으로 받으면 해당 사이즈만큼 리스트를 반환한다..

개발/Spring 2018.06.12

[Spring] Spring WebFlux reactive mongo PropertyReferenceException 해결

우선 필자는 Spring WebFlux 에 reactive mongo 를 사용 중이었다. 그리고 UserRepository 라는 인터페이스에 ReactiveCrudRepository 클래스를 상속 받게 해놓았다. package com.kjh.hojak.repository; import com.kjh.hojak.model.User; import org.springframework.data.repository.reactive.ReactiveCrudRepository; import reactor.core.publisher.Mono; public interface UserRepository extends ReactiveCrudRepository { Mono findByWriter_id(Mono writer_id..

개발/Spring 2018.06.02

[Spring] Spring 5, WebFlux Swagger 지원안함

Spring WebFlux 에 Swagger 를 적용해보려고 했는데 깃허브에 Springfox 프로젝트에 issue 를 보니까 지원을 하지 않는 것 같다. 물론 Spring 5도! 참조 링크 : https://github.com/springfox/springfox/issues/1773/ 해당 이슈에 마지막 쯤에 이런 코멘트가 달려있다. Recap:Sping 5 (spring-data-rest 3) dropped support for Javas older that Java 1.8.Spingfox projects are written and compiled in Java 1.6 (WTF?)Springfox can not support Webflux or spring-data-rest at all withou..

개발/Spring 2018.06.01

[Spring] Spring WebFlux 예제

Spring WebFlux 에 대한 간단한 예제 코드를 작성해보았다. 우선 이전에 WebFlux 에 대한 글을 작성했었지만, 다시 간단하게 WebFlux 가 무엇인지에 대해서 알아보고 가겠다. Spring WebFlux 는 비동기-논블록킹 리엑티브 개발을 할 수 있으며 효율적으로 동작하는 고성능 웹 어플리케이션 개발을 할 수 있는 서비스 간 호출이 많은 마이크로서비스 아키텍처에 적합한 프레임워크이다. (참고로 Spring WebFlux 는 기본적으로 tomcat이 아닌 netty 를 사용하고 있다.) 필자는 Spring Boot 2.0.1 버전을 사용하였다. org.springframework.boot spring-boot-starter-webflux org.springframework.boot spri..

개발/Spring 2018.04.30

[Spring] Spring ApplicationContext

Spring ApplicationContextApplicationContext 는 어플리케이션에 설정 정보를 제공하기 위한 Spring 어플리케이션의 주요 인터페이스이다. 런타임 시 읽기 전용이지만 필요에 따라 다시 로드할 수 있으며 응용 프로그램을 지원할 수 있다. 많은 클래스가 ApplicationContext 인터페이스를 구현하여 다양한 구성 옵션과 어플리케이션 유형들을 허용한다. 출처 : Spring Document그리고 ApplicationContext 는 다음을 제공한다고 한다.어플리케이션 컴포넌트에 접근하기 위한 Bean factory 메소드파일 리소스를 일반적인 방식으로 로드하는 기능등록된 리스너에게 이벤트를 게시하는 기능internationalization(국제화)를 지원해 메시지를 해결..

개발/Spring 2018.04.24

[Spring] 스프링캠프 2018

2018.04.21 에 스프링캠프 2018 에 참석했다. 트랙 A 와 B 가 있었는데, 나는 뭔가 트랙 A에 있는 섹션들만 들은 것 같다. 1. 희망을 찾기 위한 우리의 여정, Coupang MSA2. 이벤트 기반 분산 시스템을 향한 여정3. 11번가 Spring Cloud 기반 MSA 전환 1년간의 이야4. MSA 를 위한 Spring Cloud 와 Kubernetes 해당 섹션들을 들었는데, 내가 제일 어렵다고 생각한 섹션은 세번째 섹션이다. 우선 각 섹션들에서 주로 다룬 내용들은 다음과 같다.1. 늦게 가서 못 들었음,,2. 모놀리식 시스템, 이벤트 기반 아키텍처, 아마존 SQS와 SNS를 같이 적용3. Netflix 에서 만든 Hystrix 에 관한 내용4. Kubernetes 우선 천천히 다음의..

개발/Spring 2018.04.22

[Spring] Spring WebFlux - DispatcherHandler

Spring WebFlux - DispatcherHandlerSpring WebFlux 프레임워크의 DispatcherHandler 에 대해서 알아볼 것이다. Spring WebFlux 동작구조에 대해서 알아보고 싶었으나, 따로 동작구조에 대한 문서는 못 찾아서 DispatcherHandler 가 적절한 것 같아 이에 대해 알아보려고 한다.IntroductionSpring WebFlux 는 Spring MVC 처럼 중앙에 WebHandler 인 DispatcherHandler 가 있는데 프론트 컨트롤러 패턴을 중심으로 설계되었으며, 실제 작업이 설정(configurable)이나 delegate 컴포넌트에 의해 행해지는 동안 request 처리를 위한 shared 알고리즘을 제공한다. 이 모델은 유연하고,..

개발/Spring 2018.04.14

[Spring] Spring5 WebFlux 란

Spring WebFlux framework예전에는 Spring-Web-Reactive 였으며, Spring 5 의 메인테마는 JDK 9였는데 이제는 WebFlux 로 바뀌었음.Reactive System복수개의 서비스로 이루어진 분산 시스템이 정상 상황 뿐만 아니라 장애 상황에서도 일관된 동작을 보장해주는 시스템이며 Microservice 가 지향하는 방향이다.용도비동기-논블록킹 리엑티브 개발에 사용효율적으로 동작하는 고성능 웹 어플리케이션 개발서비스 간 호출이 많은 마이크로서비스 아키텍처에 적합2가지 개발방식 지원기존의 @MVC 방식 (@Controller, @RestController, @RequestMapping)새로운 함수형 모델 (RouterFuction, HandlerFuction.)새로운 ..

개발/Spring 2018.04.05
반응형