47.4. Apache CXF 확장 사용

47.4.1. 개요

Apache CXF는 개발자가 일련의 주입 주석을 단일 주석으로 교체할 수 있는 표준 JAX-WS 주입 메커니즘에 대한 확장을 제공합니다. 단일 주석은 주석을 사용하여 추출된 데이터의 필드가 포함된 빈에 배치됩니다. 예를 들어 리소스 방법에 id,type, size 라는 세 개의 쿼리 매개 변수를 포함하는 요청 URI가 필요한 경우 단일 @QueryParam 주석을 사용하여 모든 매개 변수를 해당 필드가 있는 빈에 삽입할 수 있습니다.

참고

대신 @BeanParam 주석을 사용하는 것이 좋습니다( JAX-RS 2.0 이후 사용 가능). 표준화된 @BeanParam 접근 방식은 독점형 Apache CXF 확장보다 유연하므로 권장되는 대안입니다. 자세한 내용은 47.2.6절. “Java Bean에 매개 변수 삽입”의 내용을 참조하십시오.

47.4.2. 지원되는 삽입 주석

이 확장은 모든 삽입 매개 변수를 지원하지 않습니다. 다음 항목만 지원합니다.

  • @PathParam
  • @QueryParam
  • @MatrixParam
  • @FormParam

47.4.3. 구문

주석이 빈에 직렬 주입을 사용함을 나타내기 위해 다음 두 가지 작업을 수행해야 합니다.

  1. 주석의 매개변수를 빈 문자열로 지정합니다. 예를 들어 @PathParam("") 은 일련의 URI 템플릿 변수를 빈으로 직렬화하도록 지정합니다.
  2. 주석이 달린 매개변수가 삽입되는 값과 일치하는 필드가 있는 빈인지 확인합니다.

47.4.4. 예제

예 47.7. “빈에 쿼리 매개변수 삽입” 에서는 여러 쿼리 매개변수를 빈에 삽입하는 예를 보여줍니다. 리소스 메서드는 요청 URI가 두 개의 쿼리 매개 변수( typeid )를 포함할 것으로 예상합니다. 해당 값은 Monster 빈의 해당 필드에 삽입됩니다.

예 47.7. 빈에 쿼리 매개변수 삽입

import javax.ws.rs.QueryParam;
import javax.ws.rs.PathParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
...

@Path("/monstersforhire/")
public class MonsterService
{
  ...
  @POST
  public void updateMonster(@QueryParam("") Monster bean)
  {
    ...
  }
  ...
}

public class Monster
{
  String type;
  String id;

  ...
}