자원 참조 인젝션 대상 병합에서 동작 변경 확인

서블릿 3.0 사양에서, 리소스 참조의 리소스 참조의 <injection-target> 요소는 web-fragment.xml 파일 class="FilePath">web 에 정의된 리소스 참조의 <주입 대상> 요소는 동일한 web.xml 리소스 참조 정의에 동일한 이름의 <injection-target> 요소가 없는 경우에만 추가됩니다. 서블릿 3.1 사양은 같은 이름의 리소스의 경우 참조의 경우, 같은 이름의 모든 web-fragment.xml 디스크립터의 모든 <injection-target> 요소가 부모 web.xml 설명자 <injection-target> 요소의 목록에 추가됩니다. 서블릿의 서블릿 3.1 기능은 주입을 활성화하여 기존 애플리케이션 동작을 변경할 수 있습니다 대상을 활성화하여 기존 애플리케이션 동작을 변경할 수 있습니다(예: 이전에 web.xml 파일에서 제외되었던 대상).

이 규칙은 web-fragment.xml 파일에 있는 <injection-target> 요소에 플래그를 지정합니다 파일에 web.xml 파일에 다음과 같이 정의된 <resource-ref> 요소 내에 <injection-target> 요소가 포함되어 있는 경우 로 정의된 web-fragment.xml 파일의 <resource-ref> 요소와 동일한 이름으로 정의된 경우.

다음 예제는 web.xml 파일과 web-fragment.xml 파일의 조합을 사용할 경우 동작 변경을 보여줍니다.

web.xml:

< span class= "XmlElement"> < resource-ref> < /span>
	< span class= "XmlElement"> < res-ref-name> < /span>ReferenceName< span class="XmlElement"> < /res - ref-name> < /span>
	< span class= "XmlElement"> < res-type> < /span>javax.sql.DataSource< span class="XmlElement"> < /res-type> < /span>
	< span class= "XmlElement"> < res-auth> < /span> 컨테이너 < span class="XmlElement"> < /res-auth> < /span>
	< span class= "XmlElement"> < res-sharing-scope> < /span> 공유 가능 < span class="XmlElement"> < /res - sharing-scope> < /span>
	< span class= "XmlElement"> < injection-target> < /span>
		< span class= "XmlElement"><injection-target-class>Class1 < /injection - target-class> < /span>
		< span class= "XmlElement"><injection-target-name>Resource1 < /injection - target-name> < /span>
	< span class= "XmlElement"> < /injection-target> < /span> < span class="XmlElement"> < /resource-ref> < /span>

web-fragment.xml:

< span class= "XmlElement"> < resource-ref> < /span>
	< span class= "XmlElement"> < res-ref-name> < /span>ReferenceName< span class="XmlElement"> < /res - ref-name> < /span>
	< span class= "XmlElement"> < res-type> < /span>javax.sql.DataSource< span class="XmlElement"> < /res-type> < /span>
	< span class= "XmlElement"> < res-auth> < /span> 컨테이너 < span class="XmlElement"> < /res-auth> < /span>
	< span class= "XmlElement"> < res-sharing-scope> < /span> 공유 가능 < span class="XmlElement"> < /res - sharing-scope> < /span>
	< span class= "XmlElement"> < injection-target> < /span>
		< span class= "XmlElement"><injection-target-class>Class2 < /injection - target-class> < /span>
		< span class= "XmlElement"><injection-target-name>Resource2 < /injection - target-name> < /span>
	< span class= "XmlElement"> < /injection-target> < /span> < span class="XmlElement"> < /resource-ref> < /span>

Servlet 3.0에서 결합 결과는 Class2의 인젝션 대상을 무시합니다.

< span class= "XmlElement"> < resource-ref> < /span>
	< span class= "XmlElement"> < res-ref-name> < /span>ReferenceName< span class="XmlElement"> < /res - ref-name> < /span>
	< span class= "XmlElement"> < res-type> < /span>javax.sql.DataSource< span class="XmlElement"> < /res-type> < /span>
	< span class= "XmlElement"> < res-auth> < /span> 컨테이너 < span class="XmlElement"> < /res-auth> < /span>
	< span class= "XmlElement"> < res-sharing-scope> < /span> 공유 가능 < span class="XmlElement"> < /res - sharing-scope> < /span>
	< span class= "XmlElement"> < injection-target> < /span>
		< span class= "XmlElement"><injection-target-class>Class1 < /injection - target-class> < /span>
		< span class= "XmlElement"><injection-target-name>Resource1 < /injection - target-name> < /span>
	< span class= "XmlElement"> < /injection-target> < /span> < span class="XmlElement"> < /resource-ref> < /span>

Servlet 3.1에서 결합된 결과는 Class2의 인젝션 대상을 사용합니다.

<resource-ref>
	<res-ref-name>ReferenceName</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
	<res-sharing-scope>Shareable</res-sharing-scope>
	<injection-target>
		<injection-target-class>Class1</injection-target-class>
		<injection-target-name>Resource1</injection-target-name>
	</injection-target>
	<injection-target>
		<injection-target-class>Class2</injection-target-class>
		<injection-target-name>Resource2</injection-target-name>
	</injection-target>
</resource-ref>

Servlet 3.1 동작 변경에 대한 자세한 정보는 다음 자원을 참조하십시오. Servlet 3.1 동작 변경사항.