개발일지/SPRING

[Spring] 스프링 빈 설정과 라이프 사이클

양쏘쏘 2023. 10. 23. 00:10
728x90
반응형

스프링 빈 설정 메타정보

1. XML

<bean> 태그를 사용

<!-- applicationContext.xml -->

<!-- 생성자 주입 방법 1 -->
<bean id="dao" class="com.test.hello.MemberDaoImpl">
<bean id="service" class="com.test.hello.MemberServiceImpl">
	<constructor-arg>
    	<ref bean="dao"/>
    </constructor-arg>
</bean>

<!-- 생성자 주입 방법 2 -->
<bean id="dao" class="com.test.hello.MemberDaoImpl">
<bean id="service" class="com.test.hello.MemberServiceImpl">
	<constructor-arg ref="dao">
</bean>

<!-- property 이용 -->
<!-- 1. 하위 태그 이용 -->
<ref bean="bean name"/> 

<!-- 2. 속성 이용 -->
<property name="property name=" ref="bean name"/>
<property name="property name=" value="값" />

<!-- 3. xml namesapce 사용 -->
<bean id="service" class="com.test.hello.MemberServiceImpl"
    p:name="test"
    p:memberDao-ref="dao"
/>

2. Annotation

- 빈 스캐닝을 통해 자동 등록함 

- component-scan 사용 

- base-package 하위 클래스들을 스캔하여 자동으로 등록해줌

- @Repository, @Service, @Controller, @Component

- 빈 특성, 종류에 따라 구분한 annotation으로 등록

- @Autowired : 타입에 맞춰서 연결해줌

- @Qualifier("name") : 동일 타입 bea이 여러개일 경우 식별

<!-- applicationContext.xml -->
<context:component-scan base-package="com.test.hello.*"/>
@Component
public class MemberServiceImpl implements MemberService{
    @Autowired
    private MemberDao memberDao;
}

1) setter method - @Resource

2) 필드 - @Autowired

3) 생성자 -@Autowired

동일 타입의 빈이 여러 개일 경우 @Qualifier("name")으로 식별함

 

스프링 빈 라이프사이클

스프링 빈 라이프 사이클

 

728x90