본문 바로가기
IT/Spring

2021-01-06-bean-thread-safe

by 봉즙 2023. 2. 27.

layout : post
title : "스프링 빈 스레드 세이프에 대하여"

category : Spring

스프링 빈은 쓰레드 세이프하지 않다.

값이 변할 수 있는 인스턴스 멤버 변수가 존재한다면 쓰레드 세이프 하지 않는다.
그래서 무상태인 빈을 만들어야 한다.

해결 방법

1.지역 변수를 활용한다. (인스턴스 변수 사용 X, 인스턴스 변수는 읽기 전용에만 허용되도록 한다.)

2. (지역 변수로써 사용하고 싶지 않다면) scope 옵션을 prototype으로 한다.

기본적인 scope 설정은 singleton이기 때문에, 새로운 요청이 들어와도 하나의 빈 객체가 처리를 하게 된다.
이런 경우 scope 설정을 prototype으로 둔다면 매 요청시마다 새로운 객체가 생성된다.
하지만 매 요청시마다 객체가 새로 생성되기에 성능상 좋지 않다.

'IT > Spring' 카테고리의 다른 글

2021-01-06-Oauth2  (0) 2023.02.27
2021-01-06-JPA-모델마다-다른-스키마-사용  (0) 2023.02.27
SSH 연결하기  (0) 2020.07.27
토비 스프링 - AOP, 트랜잭션 용어  (0) 2019.11.07
토비 스프링 - AOP  (0) 2019.11.04

댓글