-
@Transactional 의 내부 동작 원리
트랜잭션?: DBMS 또는 유사한 시스템에서 상호작용의 단위 (하나의 논리적인 작업 단위)특징AtomicConsistentIsolationDurability연산롤백커밋⇒ 그럼 Spring에서는 이 트랜잭션 처리를 어떻게 하는가?@Transactional스프링에서는 트랜잭션 처리를 위해 선언적 트랜잭션을 사용한다.@Transactional 과 같이 어노테이션 방식으로 이를 지원한다.Spring에서 데이터 작업의 실행단위를 명시하기 위해 사용한다고 볼 수 있다.클래스 / 메서드 위에 @Transactional 을 붙이면 AOP(관점지향프로그래밍)를 통해 타겟이 상속하고 있는 인터페이스 또는 타겟을 상속한 프록시 객체가 생성된다. 이때 프록시 객체의 메소드를 호출하면 타겟 메소드 전 후로 트랜잭션 처리를 수행..
2025.05.21
-
[SpringBoot / Swagger] Resolved [jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: 'void org.springframework.web.method.ControllerAdviceBean.(java.lang.Object)']
문제build.gradle을 다음과 같이 설정한 상태에서plugins { id 'java' id 'org.springframework.boot' version '3.5.0' id 'io.spring.dependency-management' version '1.1.7' id 'org.asciidoctor.jvm.convert' version '3.3.2'}swagger를 추가하기 위해 의존성을 추가하고implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'swagger 링크 (http://localhost:8080/swagger-ui/index.html)에 접속해봤더니Resolved [jakarta.servlet..
2025.05.31
-
Bean 생명주기, ApplicationContext, 빈 초기화 순서
Bean: 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트Spring Application에서는 모든 객체가 Bean으로 관리될 수 있음애플리케이션의 다양한 컴포넌트들 간의 의존성을 정의하고, 관리하는 역할을 함객체 간의 결합도를 낮추고, 코드의 유연성과 테스트 용이성을 높임Singleton Scope를 가짐동일한 Bean 정의에 대해 스프링 컨테이너는 단일 인스턴스만을 생성, 애플리케이션 내에서 공유설정 방식이 유연함XML, Java Config, Annotation 등 다양한 방법으로 설정할 수 있음@Component, @Service, @Repository, @Controller 등의 어노테이션 -> Spring이 자동으로 Bean으로 등록Bean의 생명주기스프링 컨테이너 생성 →..
2025.05.21