1. p Namespace란?
p Namespace를 사용하면 Setter Injection을 좀 더 효율적으로 DI를 처리할 수 있다. p Namespace는 아래와 같이 Namespace만 선언하면 사용할 수 있다.
xmlns:p="http://www.springframework.org/schema/p"
위와 같이 p Namespace를 선언하면 아래와 같이 참조형 변수에 참조할 객체를 할당할 수 있다.
p:(Variable Name)-ref="참조할 객체의 이름 혹은 아이디"
기본 데이터 타입은 아래와 같이 직접 값을 설정할 수 있다.
p:(Variable Name)="설정할 값"
2. 사용 예시
Setter Injection을 p Namespace를 활용하지 않으면 아래와 같이 <property> 태그를 사용해야 한다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="car" class="MyExam.Car">
<property name="engine" ref="engineB"></property>
<property name="seats" value="2"></property>
</bean>
<bean id="engineA" class="MyExam.EngineA"></bean>
<bean id="engineB" class="MyExam.EngineB"></bean>
</beans>
만약 p Namespace를 사용하면 아래와 같이 작성 가능하다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="car" class="MyExam.Car" p:engine-ref="engineA" p:seats="2"></bean>
<bean id="engineA" class="MyExam.EngineA"></bean>
<bean id="engineB" class="MyExam.EngineB"></bean>
</beans>
'BackEnd > Spring' 카테고리의 다른 글
[Spring] 스프링 탄생 배경 (0) | 2023.08.07 |
---|---|
[Spring] ERROR: org.springframework.web.servlet.DispatcherServlet - Context initialization failed (0) | 2023.05.14 |
[Spring] Setter Injection 기본 사용법 (0) | 2023.04.28 |
[Construction Injection] 다중 변수 매핑 (0) | 2023.04.28 |
[Construction Injection] 의존관계 변경 (0) | 2023.04.28 |