Bean
- Spring IoC 컨테이너가 관리하는 자바 객체를 Bean이라는 한다.
- Spring에서 Bean은 ApplicationContext가 알고있는 객체를 의미한다.
Spring IoC 컨테이너에 Bean 등록
- Spring Bean Configuration File에서 직접 등록
// Bean 등록
<bean id="lee" class="test01.Address">
<constructor-arg name="name" value="이순신"/>
<constructor-arg name="address" value="서울시 강남구"/>
<constructor-arg name="phone" value="010-1111-1111"/>
</bean>
<bean id="hong" class="test01.Address">
<property name="name" value="홍길동"/>
<property name="address" value="경기도 수원시"/>
<property name="phone" value="010-2222-2222"/>
</bean>
// Factory method 등록
<bean id="dayInfo" class="test02.DayFactory" factory-method="getInstance" />
// 등록된 Bean을 변수 값으로 사용 시
<bean id="beanTest" class="test03.BeanTest">
// Bean id를 ref에 담기
<constructor-arg ref="date"/>
<property name="score" ref="scoreBean"/>
<property name="number" value="25"/>
<property name="map">
<map>
<entry>
<key>
<value>spring</value>
</key>
<value>봄</value>
</entry>
<entry key="summer" value="여름"/>
<entry key="autumn" value="가을"/>
<entry key="winter" value="겨울"/>
</map>
</property>
<property name="properties">
<props>
<prop key="sky">하늘</prop>
<prop key="ground">땅</prop>
</props>
</property>
<property name="scoreList">
<list>
<bean class="test03.Score">
<constructor-arg value="오일남"/>
<constructor-arg value="100"/>
<constructor-arg value="100"/>
<constructor-arg value="100"/>
</bean>
<ref bean="scoreBean"/>
</list>
</property>
</bean>
- base-package 안에 있는 Component, Controller, Service, Repository, Configuration 어노테이션이
자동으로 ApplicationContext에 등록 ( Namespaces > context 추가)

// Spring Bean Configuration File에 context-scan 사용 base-package 지정
<context:component-scan base-package="test02"/>
@Component
- 생성한 클래스의 인스턴스를 자동으로 ApplicationContext에 등록
- 사용 시 value 속성을 지정 안하면 클래스명을 id의 default값으로 가짐
@Autowired
- 속성의 타입으로 등록된 bean을 찾아서 자동으로 주입
@Qualifier(value="변수명")
- 만약 (같은) 타입으로 등록된 bean이 여러 개인 경우, 변수명을 기준으로 다시 탐색
@Configuration
- Spring Bean Configuration File에서 하던 Bean 등록을 자바의 클래스에서 할 수 있게끔 해주는 어노테이션
@Bean
- @Bean 어노테이션이 선언되어있는 메서드가 return 하는 객체를 Bean으로 등록
- Bean의 아이디는 메서드이름을 따라간다.
'개발 > Spring' 카테고리의 다른 글
스프링에서 외부 환경 변수 정보 읽어오기 (Properties 파일) (0) | 2022.12.21 |
---|---|
SPRING_Framework Test 환경 구축 (0) | 2021.10.19 |
Eclipse에서 SPRING_Spring MVC 파일 설정 (0) | 2021.10.13 |
SPRING_AOP(Aspect-Oriented Programming) 관점 지향 프로그래밍 (0) | 2021.10.12 |
SPRING_Spring Framework (0) | 2021.10.12 |