본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


webflux10

spring webflux 10 (웹플럭스 적용기, Multipart param, 웹플럭스 멀티파트 파라미터) 웹플럭스에서 파일을 받고 보내는 것은 어렵지가 않습니다. 만약 파라미터가 존재하는 경우가 생긴다면 방법이 조금 복잡합니다. 먼저 request객체를 살펴보아야 합니다. 아래 코드는 파일을 사용자가 업로드를 할 때 사용하는 코드의 예제 입니다. @Bean public RouterFunction fileUpload() { RequestPredicate predicate = RequestPredicates.POST("/fileUpload").and(RequestPredicates.accept(MediaType.MULTIPART_FORM_DATA)); RouterFunction response = RouterFunctions.route(predicate, (request)->{ Mono mapper = requ.. 2020. 7. 27.
spring webflux 8 (웹플럭스 적용기, 웹 필터, 인터셉터) 웹플럭스에서 인터셉터기능을 만들어보기 위해서 webfilter를 사용 해 보았다. 사실 스프링처럼 무언가 Interceptor 형식의 클래스나 인터페이스가 있을 줄 알았는데..따로 존재하지는 않는 것 같다. * 물론 제 기준으로 못찾은 것 일수 있습니다! 구글링을 하여도 웹필터를 사용하라고 권장하고 있었습니다. 그리하여 대신 사용한 것이 바로 웹필터 클래스이다. 웹필터 클래스는 웹플럭스를 사용하면 따로 라이브러리를 추가하지 않아도 된다. 웹필터 클래스는 역시나 인터페이스의 종류이며, filter라는 메소드를 사용할 수 있게 해 준다. 만들 클래스를 정해준 뒤에 상속받으면 된다. 먼저 헤더에 특정값을 써 주는 모습의 클래스이다. import org.springframework.stereotype.Compo.. 2020. 4. 6.
spring webflux 7 (웹플럭스 적용기, MongoDb) 웹플럭스에서 몽고DB 연동은 "이렇게 해놨는데 동작해?" 라는 느낌이 들 정도로 매우 간단하다. 몇번의 환경설정만 해 주면 데이터베이스에서 이미 동작중인 모습을 볼 수 있다. 먼저 몽고db와의 연동을 위해서 라이브러리를 추가한다. *Maven 기준 org.springframework.boot spring-boot-starter-data-mongodb-reactive 라이브러리를 추가한 뒤에 application.properties에서 데이터베이스와 관련된 세팅을 해 준다. spring.data.mongodb.database=db이름 #spring.data.mongodb.username=만약아이디가 필요하면 #spring.data.mongodb.password=만약비밀번호가 필요하면 spring.data... 2020. 4. 1.
spring webflux 6 (웹플럭스 적용기, Mysql) 웹플럭스에서는 논블럭킹 방식으로 데이터베이스에 접근한다. 현재까지 연결하여 지원가능한 관계형 데이터베이스는 5개이다. (2020.03 기준) 1. Postgres (io.r2dbc:r2dbc-postgresql) 2. H2 (io.r2dbc:r2dbc-h2) 3. Microsoft SQL Server (io.r2dbc:r2dbc-mssql) 4. MySQL (com.github.mirromutth:r2dbc-mysql) 5. jasync-sql MySQL (com.github.jasync-sql:jasync-r2dbc-mysql) 나머지 데이터 베이스는 지원하더라도 Blocking 방식으로 지원되므로...위 언급한 5개의 데이터 베이스를 제외하고는 아직 사용하지 않는 것이 좋다고 한다. 왜나하면, 웹플럭.. 2020. 3. 30.
spring webflux 5 (웹플럭스 적용기, Mono와 Flux의 Processor) Flux나 Mono를 통해서 생성된 객체(대상, 스트림)는 subscribe로의 구독을 통해서 수행을 한다. 아래 간단한 코드를 살펴보자. private static void three() { List array = new ArrayList(); array.addAll(Arrays.asList(new String[]{"a", "b", "c", "d", "e", "e"})); Flux.fromIterable(array).collectList().subscribe( (data)->System.out.println(data)); } 별거 없는 코드이다. 변수 array에 대해서 list로 변환한 다음 간단하게 출력을 하게 하였다. 그러면 생각해볼 것이 저 subscribe이다. 만약 array에 데이터가 새로.. 2020. 3. 25.
spring webflux 5 (웹플럭스 적용기, Mono와 Flux 자주 보이는 map) * 자주 보이는 map 이번에는 연산자(함수) 중에서 자주 보이는 map에 대해서 살펴보자. map은 Javascript와 Java의 스트림에서 사용하는 map과 동일한 기능을 수행한다. 아주 심플하게 사용되는 형태를 살펴보자. public static void main(String[] args) { String text = "abcd"; Mono mono = Mono.just(text); mono.map( arg-> arg.length()).subscribe( str->{ //map을 통해서 string값을 길이로 바꾸었다. System.out.println(str); //숫자 4가나온다. }); } 크게 어렵지 않는 내용이다. text라는 문자를 구독하다가 map을 통해 길이로 바꾸어 주었고, 바꾼 .. 2020. 3. 20.