[스프링] 스프링 빈
스프링 프레임워크에서 빈(Bean)은 어플리케이션의 핵심을 이루는 객체입니다. 스프링은 이러한 빈들의 생명주기를 관리하고 의존성 주입을 통해 객체 사이의 결합을 느슨하게 만들어줍니다.
빈 생성
빈은 주로 XML, 어노테이션, 자바 설정 클래스를 통해 생성됩니다. XML 설정 방식은 과거에 많이 사용되었지만, 더 최신에는 어노테이션과 자바 설정 클래스를 통한 방식이 더 많이 사용됩니다.
XML을 이용한 빈 생성
<bean id="myBean" class="com.example.MyBean"/>
어노테이션을 이용한 빈 생성
@Component
public class MyBean {
// 빈의 내용
}
자바 설정 클래스를 이용한 빈 생성
@Configuration
public class AppConfig {
@Bean
public MyBean myBean() {
return new MyBean();
}
}
빈 주입
스프링은 빈들의 의존성을 주입하는 여러 가지 방법을 제공합니다. 가장 많이 사용되는 방법으로는 생성자 주입, Setter 주입, 필드 주입이 있습니다.
생성자 주입
@Component
public class MyBean {
private final Dependency dependency;
@Autowired
public MyBean(Dependency dependency) {
this.dependency = dependency;
}
}
Setter 주입
@Component
public class MyBean {
private Dependency dependency;
@Autowired
public void setDependency(Dependency dependency) {
this.dependency = dependency;
}
}
필드 주입
@Component
public class MyBean {
@Autowired
private Dependency dependency;
}
빈 스코프
빈의 스코프는 싱글톤(Singleton), 프로토타입(Prototype), 세션(Session) 등으로 설정할 수 있으며, 각각의 스코프에 따라 빈의 생명주기가 달라집니다.
스프링에서 빈들은 기본적으로 싱글톤 스코프로 생성되며, 이외의 스코프를 설정하기 위해서는 @Scope 어노테이션을 사용하거나 XML 설정을 통해 설정할 수 있습니다.
@Component
@Scope("prototype")
public class MyBean {
// 빈의 내용
}
스프링 빈에 대한 더 많은 정보는 스프링 공식 문서를 통해 확인하실 수 있습니다.