[Spring 실습] 커스텀 스코프와 빈 생명주기 콜백 구현

Jiwoo Jung·2024년 11월 7일
0

GDGoC Spring 스터디

목록 보기
6/15

커스텀 스코프와 빈 생명주기 콜백을 활용한 멀티 모듈 스프링 프로젝트 구현

폴더 구조

com.example.week03
├── controller
│   └── UserController.java    // 사용자 요청 처리 컨트롤러
├── service
│   ├── UserService.java       // 싱글톤 관련 비즈니스 로직 처리
│   └── SessionUserService.java // 세션 관련 비즈니스 로직 처리
│   └── PrototypeUserService.java // 세션 관련 비즈니스 로직 처리
├── repository
│   └── UserRepository.java    // 데이터베이스 접근 인터페이스
│   └── InMemoryUserRepository.java  // 메모리 기반 데이터 저장소 구현체
├── model
│   └── User.java              // 사용자 데이터 모델
└── SpringLab03Application.java // 메인 애플리케이션 클래스

실행 결과

싱글톤 스코프

http://localhost:8080/user?id=1

  • 항상 같은 hashCode 반환

프로토타입 스코프

http://localhost:8080/user?id=1

  • 항상 다른 hashCode 반환

세션 스코프

http://localhost:808/session-user?id=1

  • 같은 브라우저로 접속하는 동안에는 항상 같은 hashCode 반환
  • 다른 브라우저로 접속하면(시크릿모드) 다른 hashCode 반환 -> 새로운 세션이니까

0개의 댓글