2.18. 리소스 메타데이터 수정을 위한 RESTEasy SPI


JBoss EAP는 ResourceBuilder 를 사용하여 생성된 리소스 클래스 메타데이터를 수정하기 위해 RESTEasy 서비스 공급자 인터페이스(SPI)를 제공합니다. Jakarta RESTful Web Services 배포를 처리할 때 RESTEasy는 ResourceBuilder 를 사용하여 각 Jakarta RESTful Web Services 리소스에 대한 메타데이터를 생성합니다. 이러한 메타데이터는 특히 ResourceClass 인터페이스에서 패키지 org.jboss.resteasy.spi.metadata 에서 메타데이터 SPI를 사용하여 정의됩니다.

package org.jboss.resteasy.spi.metadata;

public interface ResourceClass
{
  String getPath();

  Class<?> getClazz();

  ResourceConstructor getConstructor();

  FieldParameter[] getFields();

  SetterParameter[] getSetters();

  ResourceMethod[] getResourceMethods();

  ResourceLocator[] getResourceLocators();
}

RESTEasy는 ResourceClassProcessor 인터페이스 구현을 제공하여 메타데이터 생성을 사용자 지정할 수 있습니다. 다음 예제는 이 SPI의 사용법을 보여줍니다.

package org.jboss.resteasy.test.core.spi.resource;

import org.jboss.logging.Logger;
import org.jboss.resteasy.spi.metadata.ResourceClass;
import org.jboss.resteasy.spi.metadata.ResourceClassProcessor;

import javax.ws.rs.ext.Provider;

@Provider
public class ResourceClassProcessorImplementation implements ResourceClassProcessor {

    protected static final Logger logger = Logger.getLogger(ResourceClassProcessorImplementation.class.getName());
@Override
    public ResourceClass process(ResourceClass clazz) {
        logger.info(String.format("ResourceClassProcessorImplementation#process method called on class %s",
                            clazz.getClazz().getSimpleName()));
        String clazzName = clazz.getClazz().getSimpleName();
        if (clazzName.startsWith("ResourceClassProcessorEndPoint")
                || clazzName.equals("ResourceClassProcessorProxy")
                || clazzName.equals("ResourceClassProcessorProxyEndPoint")) {
            return new ResourceClassProcessorClass(clazz);
        }
        return clazz;
    }

ResteasyProviderFactory 클래스를 사용하여 저장되는 새 프로세서는 일반 Jakarta RESTful Web Services 주석이 있는 공급업체로 해결됩니다. 다음과 같은 다양한 고급 시나리오에 사용할 수 있는 사용자 지정 버전으로 리소스 메타데이터 클래스를 래핑할 수 있습니다.

  • 리소스에 리소스 메서드 또는 로케이터 추가.
  • HTTP 메서드 수정.
  • @Produces 또는 @ Consumes 미디어 유형 수정.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동