☰
Current Page
Main Menu
Home
Home
Editing
tutorials
Edit
Preview
h1
h2
h3
default
Set your preferred keybinding
default
vim
emacs
markdown
Set this page's format to
AsciiDoc
Creole
Markdown
MediaWiki
Org-mode
Plain Text
RDoc
Textile
Rendering unavailable for
BibTeX
Pod
reStructuredText
Help 1
Help 1
Help 1
Help 2
Help 3
Help 4
Help 5
Help 6
Help 7
Help 8
Autosaved text is available. Click the button to restore it.
Restore Text
### 1、引入iidp-plugin包 ```xml <dependency> <groupId>com.sie.meta</groupId> <artifactId>sie-iidp-plugin</artifactId> <version>0.0.2</version> </dependency> ``` ### 2、使用@StringField注解 ```java import com.sie.meta.plugin.StringField; import com.sie.snest.engine.model.Bool; import com.sie.snest.sdk.annotation.meta.MethodService; import com.sie.snest.sdk.annotation.meta.Model; @StringField @Model(isAutoLog = Bool.True, name = "my_test") public class MyAnnoTest { private String a; private String c = "cccc"; public static void main(String[] args) { MyAnnoTest test = new MyAnnoTest(); MyAnnoTest.modelName(); MyAnnoTest.testMethod_META(); System.out.println(MyAnnoTest.a()); System.out.println(MyAnnoTest.c()); } @MethodService(description = "testMethod") void testMethod() { } } ``` 编译并查看生成的class文件 ```java // // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // public class MyAnnoTest { private String a; private String c = "cccc"; public static String c() { return "c"; } public static String a() { return "a"; } public static String modelName() { return "my_test"; } public static String testMethod_META() { return "testMethod"; } public MyAnnoTest() { } public static void main(String[] args) { new MyAnnoTest(); System.out.println(a()); System.out.println(c()); } } ``` 可以发现,新生成了3个静态方法 ```public static String modelName() ``` 返回模型名称, ``` public static String a() ``` 和 ``` public static String c() ``` 它们分别返回该filed的字符串名称。 ### 3、使用IDEA插件 由于APT(Annotation Processing Tool)只是在编译阶段生成代码,并没有侵入IDEA的行为,所以在IDEA中进行开发并不会对生成的代码进行智能提示,为此需要配套编写iidp-plugin辅助在IDEA中进行智能提示(详细参考 [[iidp-plugin 设计与实现.md]])。可在这里直接下载插件 [[iidp-plugin-v0.0.1|/uploads/iidp-plugin/iidp-plugin-0.0.1.zip]] 并按照下图所示进行安装: [[http://iidp.chinasie.com:9999/iidpminio/iidp-plugin/tutorials/install_iidp_plugin.png]] 安装完成以后,开始编写代码,可以实现IDEA代码智能提示增强的代码,以及单步调试打印结果,如下图: [[http://iidp.chinasie.com:9999/iidpminio/iidp-plugin/tutorials/intelli_sense.png]] [[http://iidp.chinasie.com:9999/iidpminio/iidp-plugin/tutorials/debug_result.png]] [[http://iidp.chinasie.com:9999/iidpminio/iidp-plugin/tutorials/modelName.png]] [[http://iidp.chinasie.com:9999/iidpminio/iidp-plugin/tutorials/method_service.png]] #### 校验json文件 [[http://iidp.chinasie.com:9999/iidpminio/iidp-plugin/tutorials/verify_json.png]] [[http://iidp.chinasie.com:9999/iidpminio/iidp-plugin/tutorials/verify_json_failed.png]] ### 4、注意事项 - 另外,如果通过IDEA调试报错,可以配置VM options,-Djps.track.ap.dependencies=false [[http://iidp.chinasie.com:9999/iidpminio/iidp-plugin/tutorials/vm_options.png]] - 目前只支持IDEA智能提示,不支持如eclipse vscode 等。
Uploading file...
Sidebar
[[_TOC_]]
Edit message:
Cancel