今天我要講解的是主角是 Annotation Processor,她不是什麼新技術 jdk 1.6 就存在了。 Annotation Processor是javac的一個工具,它用來在編譯時掃描和處理註解。經過Annotation Processor能夠獲取到註解和被註解對象的相關信息,而後根據註解自動生成Java代碼,省去了手動編寫,提升了編碼效率。vue
大部分java 開發者天天也在使用她,比較著名的就是 Lombok。java
在項目中使用Lombok能夠減小不少重複代碼的書寫。好比說constructor/getter/setter/toString等方法的編寫。 如圖:git
感觸最大的就是,添加或更改了 feild 屬性,不再用去生成 get set 了。github
spring boot 中最典型的算 spring-boot-configuration-processor 了。他會在代碼編譯期間將咱們的配置數據 spring-configuration-metadata.json 生成到 jar 包中。方便 idea 識別出來,並提供友好的提示。spring
如圖: json
spring 5 spring-context-indexer 淺析架構
生成 spring.components 文件框架
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-indexer</artifactId> <version>5.1.4.RELEASE</version> <scope>optional</scope> </dependency>
annotationProcessor "org.springframework:spring-context-indexer:5.1.4.RELEASE"
項目編譯完成時就會就會生成 META-INF/spring.components 文件到 jar 包中。如圖:(spring.components文件)maven
swagger 目前暫時還有問題,直到如今還沒修復,詳見 issues:https://github.com/springfox/...ide
Spring 5 - spring-context-indexer:https://github.com/spring-pro...
在 Spring 5 - spring-context-indexer 的啓發下,我開發了 mica-auto。編譯期間自動生成 Spring boot 的 spring-devtools.properties, 掃描 @Configuration,自動生成到 spring.factories 文件,同時將 FeignClient 信息也生成到 spring.factories 中,供 mica 中完成 Feign 自動化配置。
不再用擔憂忘了更改 spring.factories 文件而致使服務啓動出錯。
Spring boot 微服務高效開發 mica 工具集:https://gitee.com/596392912/mica
Avue 一款基於vue可配置化的神奇框架:https://gitee.com/smallweigit...
pig 宇宙最強微服務(架構師必備):https://gitee.com/log4j/pig
SpringBlade 完整的線上解決方案(企業開發必備):https://gitee.com/smallc/Spri...
IJPay 支付SDK讓支付觸手可及:https://gitee.com/javen205/IJPay