강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

cdhgold님의 프로필 이미지
cdhgold

작성한 질문수

강의잘듣고 있습니다. getBean의 스레드 안전성에 대해문의드려요

작성

·

51

0

안녕하세요.

스프링환경에서 bean으로 관리안되는 객체에서 mapper빈을 사용을 해야되는 상황입니다.

getBean으로 (context.getBean(Mapper.class); mapper빈을가져올수있는데요..

이렇게 사용해도 스레드 안전에 문제가 없는지 확신이 안서네요.

 

고수님들의 답변 부탁드려요.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
cdhgold님, Spring의 getBean 메서드는 일반적으로 스레드 안전합니다. 이는 스프링에서 관리하는 싱글톤 빈을 여러 스레드에서 동시에 안전하게 사용할 수 있음을 의미합니다. 다만, getBean 메서드를 호출할 때 반환된 빈 자체가 스레드 안전한지는 빈의 구현에 달려 있습니다.

  • Spring의 기본 빈 스코프는 싱글톤이며, 이는 동일한 빈 인스턴스가 스프링 컨테이너 내에서 관리되고 여러 요청 간에 공유됨을 의미합니다.
  • 스레드 안전성을 보장하려면 빈의 상태가 불변이거나, 로컬 변수로 작업을 처리하여 상태를 공유하지 않도록 해야 합니다.

따라서 해당 빈이 실제로 어떤 방식으로 동작하는지, 상태가 공유되는지, 객체 내부에서 동기화가 필요한지 등을 확인하는 것을 추천드립니다.

좀 더 자세한 내용이 필요하시다면, Spring 공식 문서를 참조해 보세요. 이상적인 방법은 빈이 내부적으로 스레드 안전하지 않다면 적절한 동기화 매커니즘 또는 전략을 적용하는 것입니다.

cdhgold님의 프로필 이미지
cdhgold

작성한 질문수

질문하기