Spring (5) 썸네일형 리스트형 Spring reactor Switch If Empty를 사용할 때 주의할 점 상황 작업을 하면서 아래와 같이, Flux를 가져오고, 만약 없다면 switchIfEmpty를 사용하여 default 값을 돌려주는 코드를 작성했습니다. (아래 코드는 예시입니다.) fun main() { val result = getFlux() .switchIfEmpty(mapToPlusOne()) .collectList() println(result.block()!!) } private fun getDefaultFlux(): Flux { return Flux.fromIterable(listOf(1, 2, 3, 4)) } switchIfEmpty의 경우 실제 Reactor 코드 주석 설명에서 empty 시퀀스를 돌려줄 경우에 다른 Publisher로 돌려주는 코드기 때문에, 시퀀스가 empty가 아닐 .. Spring에서 트랜잭션이 커밋된 이후 특정 동작을 해야 한다면? 1. 트랜잭션 Synchroinzation의 필요성 트랜잭션이 성공적으로 커밋된 이후에 어떤 동작을 하고싶을 때가 있습니다. ex) 사용자에게 sms, push 보내기, grpc call 등등 하지만, 일반적으로 우리가 작성하듯이 코드를 작성하면, 트랜잭션 내부 데이터는 롤백되지만 notification 관련 코드와 grpc 호출은 그대로 동작하는 경우가 있습니다. Spring에서 제공해주는 TransactionSynchronizationManager의 registerSynchronization() 메소드를 통해TransactionSynchronization 을 등록하면 트랜잭션 실행 이전, 실행 이후 실행할 수 있는 훅을 등록할 수 있습니다. 참고) TransactionSynchronizationMan.. 스프링의 트랜잭션 관리 스프링 프레임워크의 트랜잭션 추상화 스프링 프레임워크의 트랜잭션 전략은 PlatformTransactionManager 인터페이스에 정의되어 있습니다. 명세는 아래와 같습니다. public interface PlatformTransactionManager { TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException; void commit(TransactionStatus status) throws TransactionException; void rollback(TransactionStatus status) throws TransactionException; } 여기서 getTransaction(.. (번역글) Spring Boot 2.4 버전 릴리즈 노트 Spring 2.3 버전에서 업데이트 된 내용들 1. 버전 스키마 변경 2.4 버전이 되면서, Spring Boot는 새로운 버전 스키마를 채택했습니다. 만약 2.3.5 버전에서 2.4 버전으로 업데이트를 하고 싶다면, build.gradle / pom.xml 파일 내부의 Spring Boot 버전을 2.3.5.RELEASE 에서 2.4.0으로 업데이트 해야 한다는 것입니다. 더 많은 정보를 얻고 싶다면 https://spring.io/blog/2020/04/30/updates-to-spring-versions 를 참고하시면 됩니다. 2. JUnit 5의 Vintage Engine이 spring-boot-starter-test 모듈에서 제거되었습니다. 만약 당신이 Spring Boot 2.4로 업그레이드.. (번역글) Spring Boot 2.5 릴리즈 노트 Spring Boot 2.4 에서 업데이트 된 것들 1. SQL Script DataSource 초기화 schema.sql과 data.sql 스크립트를 지원하는 메소드들이 Spring Boot 2.5에서 재설계 되었습니다. DataSource 초기화와 관련이 있는 spring.datasource.* properties는 spring.sql.init.* properties의 선호로 인하여 deprecated 되었습니다. 이 properties들은 R2DBC를 통하여 SQL 데이터베이스에 접근하는 경우 초기화 할 때도 사용됩니다. 1.1 schema.sql과 data.sql 파일들 Spring Boot 2.5.1 이상부터, JDBC, R2DBC에 대한 embedded datasources의 감지 지원에 새로.. 이전 1 다음