본문 바로가기

Spring Boot

(12)
Checked Exception에서 Transaction rollback시키기 @Transactional은 Checked Exception이 터지면 rollback 시켜주지 않는다. 나는 어떤 Exception이 터지든 rollback시키고 싶었다. 물론 rollbackFor라는 옵션을 사용해서 rollback시킬 수 있지만, 나는 @Transactional(rollbackFor = Throwable.class)를 계속 쓰는 게 싫었다. 그러던 중 stackoverflow에서 관련 글을 확인할 수 있었다. 방법은 굉장히 간단하다. package refill.station.config.annotation; import org.springframework.transaction.annotation.Transactional; import java.lang.annotation.Element..
운영 yaml과 개발 yaml을 구분하기 운영을 위한 yml과 개발 yml을 구분하는 방법을 알아보자! 물론 해당 내용은 properties에도 동일하게 적용된다! application.yml spring: # 환경설정(개발: dev, 운영: prod) profiles: active: dev #DB datasource: driver-class-name: com.mysql.cj.jdbc.Driver tomcat: test-on-borrow: true validation-query: SELECT 1 application.yml에는 공통속성을 정의해놓으면 된다. 여기서 주의할 속성은 spring.profiles.active이다. 해당 부분에 dev라고 명시되어있다. 이런 경우 spring이 application.yml을 load하고 applicati..
Spring Boot + JPA 설정 Spring data jpa를 Spring Boot와 함께 사용하는 법에 대해 알아보겠다! 설정 jpa만 사용하는 경우에 jpa관련 설정을 'persistence.xml'을 통해 굉장히 길고 복잡하게 해야 했다. 하지만 spring boot를 사용하게 되면 이러한 설정들이 설정파일(.yml이나 properties)을 통해 자동화된다. 다음은 application.yml을 통해 설정한 예시이다. spring: # DB 접속 설정 datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver # JPA 설정 jpa: hibernate: ddl-auto: create properti..
Spring Boot Project 생성 Spring Boot Project는 Spring initializr를 사용하여 쉽게 생성할 수 있다. 먼저 해당 사이트에 있는 옵션들을 살펴보겠다. Maven vs Gradle Maven → Gradle로 넘어가는 추세이다. Spring Boot version 안정된 버전을 사용해야 한다. 특히 snapshot이라고 명시된 버전은 사용금지이다. Dependencies 적당히 필요한 Dependency를 설정해줘야 한다. 다음은 거의 필수로 들고 가는 라이브러리들이다. Spring web 톰캣 서버 내장, Spring MVC, RESTFUL API 포함 Spring Data JPA JPA 라이브러리(하이버네이트) DB 관련 Dependency lombok .gitIgnore 다 만들고 나서 git rep..