개발/Spring
Spring Boot 배포 WAR 에서 JAR 로 변경하기 (Spring Boot Embedded Tomcat 사용하기)
Spring Boot Embedded Tomcat Spring Boot 프로젝트를 WAR 파일로 빌드하면 Tomcat과 같은 외장 WAS에 배포해야 실행이 가능하다. 그런데 Spring Boot에는 내부적으로 Tomcat이나 Undertow와 같은 서버가 내장되어 있어, 애플리케이션을 JAR 파일로 빌드하고 실행하는 것만으로도 웹 애플리케이션을 서비스할 수 있다. Spring Boot 배포 방법 WAR에서 JAR로 변경하기 기존에 WAR 파일로 빌드되던 Spring Boot 프로젝트를 JAR 파일로 빌드되도록 변경하려고 한다. 1. WAR 플러그인 및 의존 구성 제거 기존에 WAR 파일로 빌드하는 프로젝트였다면 Java 플러그인의 디폴트인 JAR 파일 생성을 비활성화시키고 WAR 테스크를 기본 동작으로 ..
QueryDSL + multi data source 연동하기
1.QueryDSL + single data source 인 경우 DataSourceConfiguration - entityManagerFactory 생성 메서드 - 데이터소스 클래스를 생성하는 것이 주 내용이 아니기 때문에 entityManagerFactory 생성 메소드만 올린다. @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory( @Qualifier("dataSource") DataSource dataSource) { LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean(); en..
webflux + reactive redis cache 적용하기
webflux + reactive redis cache redis는 캐시로 사용할 수 있음. AOP에서 redis에 원하는 데이터가 있으면 바로 get, 없으면 set하는 로직. 기존 mvc 모델에서는 캐시 어노테이션과 AOP로 캐시를 쉽게 구현할 수 있음. 그런데 webflux 모델에서는 캐시를 구현할 수 가 없었다. mvc 모델 @RedisCacheable(DEAL) public Deal getDeal(final long dealNo, ...) { // 실제 데이터를 리턴 } webflux 모델 webflux는 데이터를 get하면 Mono/Flux 체인이 리턴된다. Mono/Flux는 Reactive Streams에서 데이터를 제공하는 발행자 역할을 하는 Publisher의 구현체이다. 구독자가 su..
Spring-Cloud-Data-Flow(SCDF)구축해보기
Spring-Cloud-Data-Flow(SCDF)란? Spring Cloud Data Flow 는 Cloud Foundry 및 Kubernetes에서 스트리밍 및 일괄 데이터 처리 파이프라인을 구축하기 위한 마이크로서비스 기반 툴킷 SCDF 특징 웹 대시보드, REST API, JAVA DSL, console shell 다양한 인터페이스로 제공 로컬, Cloud Foundry 및 Kubernetes 위에서 설치 및 운영 가능 스케줄링 기능은 Cloud Foundry 및 Kubernetes에서만 사용 가능, 일반 서버에서는 X SCDF의 상태 및 데이터 관리는 관계형 DB에서 관리 기본적으로 h2 DB와 연동되지만 실행시 데이터가 초기화 되기 때문에 운영에서 사용시 MySQL, MariaDB와 같은 관계..