본문 바로가기

개발/Spring23

Property 'spring.profiles.active' imported from location 'class path resource [application-dev.yml]' is invalid application.yml 설정시 application-dev.yml 파일 명으로 명시하는 방법 yml 파일안에 spring.profiles.를 설정하는 방법 둘중 하나만 하면 된다. No need to mention spring.profiles.active property if file name is application-dev.yml ( spring boot new version ) https://stackoverflow.com/questions/67935961/property-spring-profiles-active-imported-from-location-class-path-resource-a Property 'spring.profiles.active' imported from location .. 2023. 12. 24.
@RequsestBody와 Setter DTO에서 Setter을 사용하는 부분에 대해서 확인 중에 신기한 부분을 발견해서 정리해본다. https://jojoldu.tistory.com/407 @Request Body에서는 Setter가 필요없다? 회사에서 근무하던중 새로오신 신입 개발자분이 저에게 하나의 질문을 했습니다. POST 요청시에 Setter가 필요없는것 같다고. 여태 제가 알던것과는 달라서 어떻게 된 일인지 궁금했습니다. 정말 P jojoldu.tistory.com @RequestBody는 Setter가 필요없다? 주로 RequestBody로 받는 파라미터는 @Data와 함께 사용한다. 근데 Setter가 필요 없다? 몇가지 실험을 해보자 1. 조합 : RequestBody, Data @ResponseBody @PostMapping.. 2023. 9. 18.
@Transactional에 대한 정리[번외] - RuntimeException와 Errorcode 애플리케이션을 개발할때 CustomException을 제작해서 따로 ErrorCode 정의 후 Exception을 떤져준다. @Transactional을 떤져서 rollback을 의도한다. 그럼 Exception과 어떻게 구성할지 조금 더 확인해보자 흔히 아는 UncheckedException(RuntimeException)과 CheckedException이 존재한다. 둘의 차이점은? 나의 본 목적은 CustomException을 제작하여 나의 Exception을 떤지면서 rollback을 진행하고 싶다. 그러면 우선 내가 만드는 CustomExcpetion은 RuntimeExcpetion을 extends하자 그럼 요기서 잠깐 CheckedException은 왜 롤백을 진행하지 않는가? 기본적으로 che.. 2023. 9. 11.
@Transactional에 대한 정리[4] - rollbackFor(Class)에 관하여 @Transactional은 UncheckedException에 대해서 rollback이 이뤄진다. 하지만 CheckedException 또한 Exception이자면 exception인데... 모든 Exception에 대해서 처리하고 싶으면 어떻게 진행해야 하늗가? @Transactional(rollbackFor = Exception.class)으로 진행한다. checked, uncehcek 둘의 부모 클래스는 결국 Exception.class이기에 @Transcational(rollbackFor = Excpetion.class)으로 보든 exception에 rollback을 진행한다. 앞서 Transaction이 진행되는 상황에서 TransactionAspectSupprt가 call 되는 상황임을 알 .. 2023. 9. 11.
@Transactional에 대한 정리[3] - rollback()에 관하여 보오오오통 @Transactional의 rollback이 UncheckedException에 반응한다는 부분은 모두가 아는 사실이다. 그럼 rollback()은 어떻게 진행되는가? @Transactional에서 rollback()이 어떻게 동작하는가? @Transactional의 docs를 따라가보면 TransactionAttribute, DefaultTransactionAttribute, RuleBasedTransactionAttribute를 확인할 수 있다. TransactionAttribute (TranscationalDefinition) https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/trans.. 2023. 9. 11.
@Transactional에 대한 정리[2] - (readOnly=true)에 관하여 @Transactional에 대한 정리 [1]에서 작성했듯이 Service단을 전체적으로 @Transactional(readOnly=true)를 적용하고 rollback을 희망하는 부분에 대해서 메소드 별로 따로 @Transactional을 적용하고 있다고 밝힌적이 있습니다. @Transactional(readOnly=true)가 기본적으로 성능 이점을 가져온다는 것은 알고 있지만 정확히 어떤 이점이 있는지에 대해서 자세히 정리 해본적이 없기에 정리해봅니다. 해당 이점은 JPA를 사용하면서 영속성 컨텍스트(Persistence Context)가 수행하는 변경 감지(Dirty Checking)과 연관 되어있습니다. JPA는 사용하면 작업을 쭈우우우욱 진행하고 쓰기 지연 저장소에 있는 SQL query를 f.. 2023. 9. 11.