266.6. Java 클래스 생성
Protobuf SDK는 .proto 파일에서 정의한 형식에 대한 Java 클래스를 생성하는 컴파일러를 제공합니다. 운영 체제가 Protobuf Java 코드 생성기 maven 플러그인 에서 지원하는 경우 pom.xml에 다음 구성을 추가하여 protobuf Java 코드 생성을 자동화할 수 있습니다.
프로젝트 pom.xml의 < build > 태그 내에 운영 체제 및 CPU 아키텍처 감지 확장 기능을 삽입하거나 ${os.detected.classifier} 매개변수를 수동으로 설정합니다.
<extensions> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.4.1.Final</version> </extension> </extensions>
gRPC 및 protobuf Java 코드 생성기 플러그인 < ;plugins> 프로젝트 pom.xml을 삽입합니다.
<plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>0.5.0</version> <extensions>true</extensions> <executions> <execution> <goals> <goal>test-compile</goal> <goal>compile</goal> </goals> <configuration> <protocArtifact>com.google.protobuf:protoc:${protobuf-version}:exe:${os.detected.classifier}</protocArtifact> </configuration> </execution> </executions> </plugin>
수동으로 필요한 추가 지원 언어에 대해 컴파일러를 실행할 수도 있습니다.
protoc --java_out=. ./proto/addressbook.proto
그러면 사람 및 주소를 위한 내부 클래스가 포함된 AddresskeygenProtos라는 단일 Java 클래스가 생성됩니다. 빌더도 이를 위해 구현됩니다. 생성된 클래스는 직렬화 메커니즘에 필요한 com.google.protobuf.Message를 구현합니다. 이러한 이유로 이러한 클래스만 교환의 본문에 사용되는 것이 중요합니다. Camel은 Data Format에서 com.google.protobuf.Message를 구현하지 않는 클래스를 사용하도록 알리기 위해 경로 생성에 예외를 발생시킵니다. 생성된 빌더를 사용하여 기존 도메인 클래스의 데이터를 변환합니다.