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

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

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


Spring framework73

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.
spring webflux 4 (웹플럭스 적용기, Mono와 Flux) 웹플럭스는 리엑터 객체인 Mono와 Flux 클래스를 얼마나 잘 다룰줄 아는지가 가장 중요한 것 같다. 웹플럭스를 조금 더 파보기 위해서는 저 Mono와 Flux에 대해서 친숙해질 필요가 있다. 새로 프로젝트를 만들자. 그냥 Maven 프로젝트나 Gradle 프로젝트를 만든 다음에 웹플럭스 라이브러리를 추가하자. 버전은 본인의 구성에 맞게 설정하자~ * 메이븐 org.springframework.boot spring-boot-starter-webflux * Gradle compile group: 'org.springframework.boot', name: 'spring-boot-starter-webflux', version: '2.2.5.RELEASE' Mono와 Flux는 둘다 하는 행위가 비슷하다. .. 2020. 3. 18.