Skip to content

zh_autoGenSchema

Ray edited this page Sep 11, 2019 · 4 revisions

自动生成Breeze Schema

当Java项目需要与其他语言远程交互时,可以对Java项目中的对象生成Breeze Schema,然后通过breeze-generator,使用Schema自动创建其他语言的Breeze Message对象,进行远程交互。

在项目中引入breeze-maven-plugin

  1. 配置maven plugin
    <build>
        <plugins>            
            <plugin>
                <groupId>com.weibo</groupId>
                <artifactId>breeze-maven-plugin</artifactId>
                <version>1.1.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>schema</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- <xmlPath>${basedir}/src/main/resources</xmlPath> -->
                    <classes>
                        <class>com.weibo.Mytest</class>
                        <class>com.weibo.Mytest$InnerTest</class>
                    </classes>
                </configuration>
            </plugin>
        </plugins>
    </build>

Motan服务依赖的对象生成Schema

可以通过配置configuration中的xmlPath配置项,指定需要扫描的目录,当执行 mvn breeze:schema 生成schema时,会扫描对应路径中所有的xml文件, 如果文件中包含motan:referer配置项,则会对motan:referer中的interface中所有方法的入参及返回值进行检测,并生成对应的Schema文件。

xmlPath的默认路径是${basedir}/src/main/resources, 也就是说,如果Motan rpc的配置文件如果放在默认路径中的话,是不需要配置xmlPath参数的。

对普通Java Bean对象生成Schema

除了支持对Motan rpc服务接口自动生成Schema外,也可以指定类名来生成Schema。

可以通过在configuration中配置classes列表项,来指定想要生成Schema的类名。如果是内部类的话,需要使用主类名$内部类名方式书写类名

Schema生成目录及文件规则

执行 mvn breeze:schema 后会按照configuration自动生成Schema,生成信息会输出到maven执行日志中。

生成后的scheam统一放在META-INF/breeze目录下,每个类对应一个.breeze的Schema文件。

项目编译时这些Schema文件也会被一同打包,编译后的.breeze文件头中会包含生成时对应类的版本信息,便于查看及进行版本管理。

使用Schema生成不同语言Breeze对象

参见breeze-generator

Clone this wiki locally