반응형
SMALL
Spring에서 "빈(Bean)"이란 스프링 컨테이너가 관리하는 객체를 뜻해요. Spring Framework에서는 객체의 생성, 초기화, 관리, 소멸 등을 자동으로 처리해 주기 때문에, 개발자는 객체를 직접 생성하고 관리할 필요 없이 필요한 곳에 빈을 주입받아 사용하기만 하면 돼요.
빈의 주요 개념
- 객체 인스턴스: 빈은 결국 Java 객체를 말해요. 하지만 단순 객체와는 다르게, 스프링 컨테이너에서 만들어지고 관리되는 객체예요.
- DI (Dependency Injection): 스프링은 필요한 빈을 자동으로 주입해 주는 DI 기능을 제공해요. 예를 들어, 어떤 클래스가 다른 클래스(빈)에 의존한다면, 스프링이 자동으로 그 클래스를 주입해 주어서 객체 간의 의존성을 해결해요.
- 싱글톤(Singleton): 기본적으로, 스프링 컨테이너는 각 빈을 애플리케이션 내에서 하나의 인스턴스만 만들어 공유해요. 같은 빈을 여러 곳에서 사용해도 같은 객체 인스턴스를 참조하게 됩니다. (다만, 설정을 통해 여러 인스턴스를 생성할 수도 있어요.)
- 라이프사이클 관리: 스프링은 빈의 생성부터 소멸까지 라이프사이클을 관리해 줘요. 이를 통해 개발자는 복잡한 초기화나 소멸 로직을 별도로 구현하지 않아도 돼요.
예시로 살펴보기
예를 들어, UserService라는 클래스가 UserRepository 클래스에 의존한다고 가정할게요. UserService가 직접 UserRepository를 생성하는 대신, 스프링 컨테이너가 UserRepository 빈을 만들어 UserService에 주입해 줍니다.
@Component
public class UserRepository {
// 데이터베이스와의 연동 로직
}
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired // 스프링이 UserRepository를 주입해줍니다
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}
위 예시에서 스프링 컨테이너는 UserRepository와 UserService 빈을 생성하고, UserService가 UserRepository에 의존하는 것을 인식하여 자동으로 주입해 줘요. 이 덕분에 개발자는 객체 생성과 관리에 신경 쓸 필요 없이 로직에 집중할 수 있게 됩니다.
즉, Spring 빈은 객체를 자동으로 생성하고 주입하여 코드 간의 결합도를 낮추고, 객체 관리의 복잡함을 줄여주는 핵심 개념이에요.
반응형
LIST
'cs정리' 카테고리의 다른 글
spring IOC 컨테이너란? (0) | 2024.11.11 |
---|---|
스프링 빈 주입시 생기는 문제들 (0) | 2024.11.09 |
ORM 구현체- HIBERNATE, MYBATIS (2) | 2024.10.30 |
SPRING BOOT ORM이란? (0) | 2024.10.30 |
SPRING BOOT JPA란? (0) | 2024.10.30 |