265.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>프로젝트 pom.xml의 gRPC 및 protobuf Java 코드 생성기 플러그인 < plugins > 태그를 삽입합니다.
<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>수동으로 필요한 추가 지원 언어에 대해 컴파일러를 실행할 수도 있습니다.You can also run the compiler for any additional supported languages you require manually.
protoc --java_out=. ./proto/addressbook.proto
그러면 Person 및 AddressBook에 대한 내부 클래스가 포함된 AddressBookProtos라는 단일 Java 클래스가 생성됩니다. 또한, 건축가들은 당신을 위해 구현되어 있습니다. 생성된 클래스는 직렬화 메커니즘에 필요한 com.google.protobuf.Message를 구현합니다. 따라서 이러한 클래스만 교환의 신체에 사용되는 것이 중요합니다. Camel은 com.google.protobuf.Message를 구현하지 않는 클래스를 사용하도록 데이터 형식에 지시하려고 하면 경로 생성 시 예외를 throw합니다. 생성된 빌더를 사용하여 기존 도메인 클래스의 데이터를 변환합니다.