## 74. Spring의 @Transactional 로 교체하기
- 직접 제작한 트랜잭션 프록시 객체 대신 Spring에서 제공하는 클래스 및 애노테이션 사용하기
ㄴ Transactional 애노테이션 파일, TransactionProxyBuilder 클래스 파일이 있는 util 패키지 제거하기
AppConfig.java
ㄴ 해당 import 제거하기
=>
AppConfig.java
ㄴ 해당 코드 제거
DefaultBoardService.java
=>
DefaultBoardService.java
ㄴ Spring 의 @Transactional 애노테이션으로 교체하기
=>
DefaultBoardService.java
ㄴ @Service 주석 제거해주기
DefaultMemberService.java
=>
DefaultMemberService.java
ㄴ Spring 의 @Transactional 애노테이션으로 교체하기
=>
DefaultMemberService.java
ㄴ @Service 주석 제거해주기
=>
App 실행
=>
=>
=>
AppConfig.java
ㄴ @EnableTransactionManagement 애노테이션 이용하기
ㄴ @Transactional 애노테이션을 처리할 객체 등록
=>
App 재실행
=>
ㄴ 트랜잭션 관련 클래스들 생성됨
AppConfig.java
=>
ㄴ @ComponentScan을 사용하면 자동으로 빈으로 등록되어 스프링 애플리케이션 컨텍스트를 초기화하는 데 사용됨
ㄴ @ComponentScan 애너테이션을 사용하여 패키지를 스캔하도록 설정하면 스프링 컨텍스트에서 해당 패키지에 있는 @Component 및 관련 애너테이션을 가진 클래스들을 검색하고 빈으로 등록함
AppConfig.java
=>
ㄴ @MapperScan 애노테이션을 추가하면 해당 클래스가 출력됨
=>
=>
ㄴ 로그인 정보 입력 후 [로그인] 선택
=>
ㄴ 로그인 정상적으로 실행됨을 확인
=>
ㄴ 게시글 목록 정상적으로 출력됨을 확인
=>
ㄴ 게시글 내용 입력 후 [등록] 선택
=>
ㄴ 게시글이 정상적으로 등록됨을 확인
=>
ㄴ 사파리 브라우저에서 같은 게시글 페이지를 확인했을 때 글 등록이 동일하게 반영되어있음을 확인
=>
ㄴ 제목에 255자보다 긴 글자수를 넣어 에러 발생 시키기
=>
=>
ㄴ 오류 발생된 내용의 게시글은 추가되지 않음을 확인
=>
ㄴ 사파리 브라우저에서 확인했을 때도 오류 발생된 내용의 게시글은 추가되지 않음을 확인