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

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

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


Spring framework/Spring Webflux12

[webflux websocket broad cast all] 웹플럭스 웹소켓 에코 말고 전체에게 보내기 웹플럭스에서 웹소켓을 활용하여 채팅서버를 만들 수 있습니다. 구글링 하다보면 다양한 예제를 만날 수 있으며, 샘플 코드 또한 훌륭 합니다. 그런데..아쉬운 점은.. 바로 대부분의 설명과 예제가 단순히 자기 자신에게 돌아오는 에코(echo)로 된 코드라는 점 이였습니다. 포스팅 설명을 읽고 한번 실행하여 보면 자기한테만 메시지가 올 분 다른 클라이언트에게 메시지는 전달되지 않았습니다. 그래서 이것저것 찾아보며 전체 접속한 사용자에게 전송하는 방법에 대해서 정리하여 보았습니다! * 2023. 05 기준 입니다. 웹플럭스에 사용한 라이브러리는 2종류 입니다. org.springframework.boot spring-boot-starter-integration org.springframework.boot spr.. 2023. 5. 22.
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 9 (웹플럭스 적용기, AOP) 웹플럭스에서 AOP를 적용하는 방법은 역시나 스프링부트답게 엄청나게 간단하다. 정말 전자정부나 일반 Spring에서의 세팅은참.. 아무튼, 라이브러리를 추가한다. * maven 기준 org.springframework.boot spring-boot-starter-aop AOP가 동작할 클래스를 만들어준다. import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.context.annotation.Configuration; import org.aspectj.lang.JoinPoint; @C.. 2020. 4. 10.
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.