TECH/Spring
-
Spring Data R2DBC + Jasync 사용시 AbstractMethodError가 발생하는 경우TECH/Spring 2022. 10. 31. 18:50
Spring Data R2DBC 2.7.1에서 데이터베이스 드라이버를 Jasync (mysql) 사용했을 때에 저장할 경우 AbstractMethodError 에러가 발생함을 확인하였다. 에러 발생 환경 Spring Data R2DBC 2.7.1 Jasync 2.0.1 에러 로그 2022-07-06 11:20:53.459 ERROR 7370 --- [netty-thread-18] reactor.core.publisher.Operators : Operator called default onErrorDropped java.lang.AbstractMethodError: Method com/github/jasync/r2dbc/mysql/JasyncInsertSyntheticMetadata.getColumnMet..
-
Spring Boot 애플리케이션의 Health Endpoint 상태가 Eureka에 영향을 끼칠까?TECH/Spring 2022. 10. 14. 21:34
결론만 먼저 말하자면 eureka.client.healthcheck.enabled: true인 경우 영향을 끼치고, false(기본값)인 경우 영향을 끼치지 않는다. 먼저, Spring Boot Actuator의 Health Information이 무엇인지 알아보자. Spring Boot Actuator - Health Information Health Endpoint란? actuator에서 실행 중인 애플리케이션의 상태를 체크하기 위해 제공한다. 일반적으로 프로덕션 환경에서 시스템이 내려갔을 때 이에 대한 알림을 주기 위해 사용된다. 이 정보는 health 엔드포인트에 의해 노출되는데, health endpoint는 management.endpoint.health.show-details 과 manage..
-
Spring Data R2DBC - R2DBC란?TECH/Spring 2022. 6. 16. 09:46
What is R2DBC R2DBC란 Reactive Relational Database Connectivity의 약어이다. R2DBC는 드라이버 벤더들에 의해 관계형 데이터베이스에 접근하기 위해 구현될 reactive API를 선언한 API 명세 계획이다. R2DBC가 왜 생겼는지에 대한 답변의 일부는 적은 수의 쓰레드로 동시성을 다루고 적은 하드웨어 리소스로 스케일하는 논블록킹 애플리케이션 스택의 필요성이다. 이 필요성은 표준화된 관계형 데이터 베이스 접근 API의 - 주로 JDBC - 재활용으로는 충족될 수 없었다. JDBC는 fully blocking API이기 때문이다. 블록킹 동작을 ThreadPool로 완화하려는 시도는 사용이 제한적이다. 다른 답변의 일부는 대부분의 애플리케이션은 데이터를 ..
-
Spring Cloud Gateway의 RouteDefinitionRepositoryTECH/Spring 2022. 6. 7. 13:28
Spring Cloud Gateway(이하 S.C.G라고 호칭)에서는 두 종류의 RouteDefintionRepository 구현체를 제공한다. InMemoryRouteDefinitionRepository 하나의 게이트웨이 인스턴스 내에서만 존재한다. 따라서, 여러 게이트웨이 인스턴스에 걸쳐 라우트를 공유하기에 적합하지 않다. RedisRouteDefinitionRepository S.C.G 인스턴스 클러스트에 걸쳐 라우트를 공유하기 위해서 RedisRouteDefinitionRepository 를 사용할 수 있다. 이를 위해서는 spring.cloud.gateway.redis-route-definition-repository.enabled 를 true로 설정해야 한다. RedisRateLimiter 필..
-
logback-spring.xml과 application.yml의 로그 설정 중 어떤 것이 우선 순위가 더 높을까TECH/Spring 2022. 2. 21. 08:43
application.yml과 logback-spring.xml에 설정된 로그 레벨 설정 중 어떤 것이 더 우선 순위가 높을까? 디렉토리 구조 . ├── pom.xml └── src └── main └── resources ├── application.yml └── logback-spring.xmlapplication.yml logging: level: root: DEBUGlogback-spring.xml 테스트용 코드 @RestController public class TestController { Logger logger = LoggerFactory.getLogger(TestController.class); @GetMapping("/") public String test() { logger.trace..
-
Spring Boot war 파일 생성하기TECH/Spring 2021. 9. 11. 15:29
SpringBootServletInitializer 서브클래스를 생성하고, configure 메소드를 오버라이딩한다. 이를 통해 Spring Framework의 서블릿 3.0 지원을 사용할 수 있고, 서블릿 컨테이너에 의해 애플리케이션이 실행됐을 때 애플리케이션을 설정할 수 있게 된다. 일반적으로, 아래와 같이 애플리케이션의 메인 클래스가 `SpringBootServletInitializer` 를 상속할 수 있도록 수정해야 한다. import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.bui..