springboot自定義starter(protobuf-spring-boot-starter)
阿新 • • 發佈:2018-12-10
0.簡介(因為沒有想到合適的事例 所以就封一層protobuf)
官方命名:spring-boot-starter-{name} 比如spring-boot-starter-web
非官方命名:{name}-spring-boot-starter 比如mybatis-spring-boot-starter
1.maven依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> <version>2.0.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <version>2.0.0.RELEASE</version> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.6.0</version> </dependency> <dependency> <groupId>com.googlecode.protobuf-java-format</groupId> <artifactId>protobuf-java-format</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.0.9.RELEASE</version> </dependency>
2.自定義ProtobufAutoConfiguration
@Configuration @ConditionalOnProperty(prefix = "spring.protobuf", value = "enabled", matchIfMissing = false) public class ProtobufAutoConfiguration { @Bean public ProtobufHttpMessageConverter protobufHttpMessageConverter() { return new ProtobufHttpMessageConverter(); } @Bean public RestTemplate restTemplate(ProtobufHttpMessageConverter protobufHttpMessageConverter) { List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>(); messageConverters.add(protobufHttpMessageConverter); return new RestTemplate(messageConverters); } } 註釋:spring.protobuf.enabled=true才自動裝配ProtobufAutoConfiguration
3.resources/META-INF/spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.boomsercret.config.ProtobufAutoConfiguration
4.安裝到本地倉庫(mvn install)
5.使用
<dependency> <groupId>com.boomsercret</groupId> <artifactId>protobuf-spring-boot-starter</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
6.總結
其實很簡單,可以參考mybatis-spring-boot-starter, spring-boot-starter-web等等.
starter原始碼:https://gitee.com/jsjack_wang/protobuf-spring-boot-starter
測試Demo原始碼:https://gitee.com/jsjack_wang/springboot-demo dev-protobuf2分支