Spring SpringBoot

Reactor, RxJava, WebFlux에서 사용되는 용어들 Spring WebFlux, Project Reactor 등 Reactive Streams가 사용되는 프로젝트를 개발하면서 구글링을 하면 아래의 용어들을 만나볼 수 있다. 앞으로 구글링할 때 읽다가 단어의 뜻을 몰라 브레이크가 걸리지 않도록 용어의 뜻을 예제와 함께 알아보자 Publisher : 발행자, 생산자, Emitter 데이터를 생산하는 주체 Emit : Publisher가 데이터를 Downstream(아래 참고)으로 방출하는 것 Subscriber : 구독자, 소비자 데이터를 소비하는 주체 Sequence : Publisher가 emit하는 데이터의 연속적인 흐름 stream, pipeline과도 의미가 같다. Subscribe :..
항해 팀 프로젝트 중 세미나 성격으로 발표해야할 일이 생겨서 자세하게 주석으로 설명했기에 따로 설명은 하지 않고 flow대로 포스팅합니다. WebFlux Controller Test MemberChannelControllerTest 주석 있는 버전 @WebFluxTest(controllers = MemberChannelController.class) // 1. 어떤 컨트롤러 클래스를 테스트할건지? @AutoConfigureWebTestClient // 2. @WithMockUser를 사용하기 위해서 class MemberChannelControllerTest { @Autowired private WebTestClient webTestClient; // 3. WebFlux 환경에서 가상의 요청을 만들 수 ..
@ModelAttribute 먼저 @ModelAttribute 어노테이션이 붙은 매개변수를 client에게서 요청받아서 처리하려는 경우 아래와 같은 특징이있다. 객체에 데이터를 바인딩할 수 있는 생성자혹은 Setter메서드가 하나는 필요하다. Query String (w-xxx-url-encoded)방식이나 Form 형식 데이터가 아니면 null을 반환한다. 스프링 내부적으로 @ModelAttribute 어노테이션이 붙은 Controller에 전달될 매개변수 RequestDto 객체에 에 client의 요청 데이터 값을 bind하기 위해서 ModelAttributeMethodProcessor 클래스가 RequestDto객체를 어떻게 생성하는지 살짝만 보면, ModelAttributeMethodProces..
@Slf4j 사용했는데도 cannot find symbol log 오류가 발생한다면? 새로 스프링부트 프로젝트를 생성한 후 아래 사진과 같은 오류를 겪었다. 구글링 10초만에 해결방법을 찾았으나 시원하지 않았다. 해결 방법은 아래처럼 직접 LoggerFactory.getLogger() 를 호출하여 log 변수를 직접 선언한것. @Component public class LoggingFilter implements WebFilter { private static final Logger log = LoggerFactory.getLogger(LoggingFilter.class); @Override public Mono filter(ServerWebExchange exchange, WebFilterChain c..
내장 h2 db로 Hibernate를 이용한 jpa를 통해 Entity Class 들을 db table로 매핑하려고 하는데, GenerationTarget encountered exception accepting command : Error executing DDL “ DDL 수행중 오류가 났다는 오류가 잔뜩이다. 나의 경우는 h2 내장db로 테스트하지만 결국 배포시에는 Mysql을 사용할 것이고, 그에 따라 Dialect 설정을 통해 ORM의 객체 맵핑으로 Mysql 쿼리문으로 DDL을 날리겠다고 했다. 그리고 h2 datasource를 사용하지만, mysql 모드로 사용하기위한 설정도 yml파일에 진행한 상태, 아래는 내 application-test.yml 코드 spring: config: acti..
서병렬
'Spring SpringBoot' 카테고리의 글 목록