Spring이 관리하는 객체를 의미한다.
Spring IoC(Inversion of Control - 제어의 역전) 컨테이너는 이런 Bean 들을 생성, 관리, 배치하는 역할을 한다.
장점 : 개발자는 복잡한 객체 관리에서 벗어나 비즈니스 로직에 더 집중할 수 있다.
@Configuration
이 붙은 클래스에서 @Bean
어노테이션을 사용하여 메서드를 정의하고,
메서드가 반환하는 객체를 스프링 빈으로 등록.
@Configuration
public class Example {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
위 예시에서 Example
class 내의 myService 메서드는 MyServiceImpl 객체를 생성하고 이를 스프링 빈으로 등록한다.
클래스에 직접 어노테이션을 붙여서 스프링에게 이 클래스의 객체를 빈으로 등록해!! 하고 알리는 방식!!
어노테이션 종류 :
@Component
: 일반적인 컴포넌트(빈).@Service
: 비즈니스 로직이 있는 서비스 레이어의 빈.@Repository
: 데이터 액세스 로직이 있는 레포지토리 레이어의 빈.@Controller
: 웹 요청을 처리하는 컨트롤러 레이어의 빈.@Service
public class MyService {
// ...
}