Spring 3

Spring Boot 3.2에서 달라진 예외 처리 방식 - NoHandlerFoundException도 @ControllerAdvice로 처리된다.

Spring Boot 2에서 3으로 마이그레이션 하면서 작지만 중요한 변화 하나를 발견했다. 바로 요청 URL에 해당하는 핸들러(Controller)가 존재하지 않을 때의 예외 처리 방식이 변경된 것이다.기존(Spring Boot 2.x ~ Spring Boot 3.1)의 동작 방식Spring Boot 2.x 버전에서는 존재하지 않는 경로로 요청할 경우, @ControllerAdvice에 선언된 @ExceptionHandler(Exception.class)가 동작하지 않았다. 대신 Spring 자체의 오류 처리 페이지(resources/templates/error/4xx.html)가 렌더링 되었다. 변경 사항(Spring Boot 3.2부터)Spring Boot 3.2부터는 NoHandlerFoundEx..

Spring 2025.05.08

@Transactonal

스프링의 트랜잭션 관리 스프링의 트랜잭션 관리는 선언적 트랜잭션과 프로그래밍 트랜잭션 두 가지 방법을 제공한다. 선언적 트랜잭션은 트랜잭션 관리를 "선언적"으로 처리하는 방법으로, 주로 애노테이션 또는 XML 설정을 이용해 트랜잭션의 범위, 롤백 규칙 등을 정의하는 방식을 말한다. "선언적"이라는 말은 트랜잭션 관리를 비즈니스 로직에서 분리하고, 트랜잭션 관련 설정을 외부에서 선언하게 함으로써 코드의 가독성과 재사용성을 높이는 장점이 있다. 프로그래밍 트랜잭션은 코드 상에서 트랜잭션을 명시적으로 시작, 커밋, 롤백하는 방식을 말하며, 주로 더 세밀한 제어가 필요한 경우에 사용하지만 일반적으로 사용하는 경우는 드물다. 관점 지향 프로그래밍 (AOP, Aspect-Oriented Programming) 애플..

Spring 2023.05.11

Maven

Maven 이란? 자바용 프로젝트 빌드 및 관리에 사용되는 도구를 말한다. 프로젝트의 전체적인 빌드 라이프 사이클 및 라이브러리에 대한 의존 관계를 관리해준다. Maven 장점 프로젝트에 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 네트워크를 통해 자동으로 다운로드하여준다. (pom: project object model) 정해진 빌드 방법을 사용하여 협업에서 사용할 때 용이하며 플러그인을 통해 많은 작업을 자동화시킬 수 있다. pom.xml 속성 : pom.xml 파일의 최상위 루트 엘리먼트로 해당 태그 안에 모든 정보를 기술한다. : pom 모델의 버전 : 프로젝트를 생성하는 조직의 고유 아이디를 말한다. 일반적으로 도메인 이름을 거꾸로 기술 : 프로젝트를 식별하는 유일한 아이디 :..

Spring 2021.06.19