打开idea,创建一个springboot项目:
点击next,添加两个依赖:
点击finsh,创建成功。
将pom文件中的版本号改为 0.0.1
(非必须操作):
<groupId>com.examplegroupId>
<artifactId>test-spring-boot-starterartifactId>
<version>0.0.1version>
将
标签的内容都删掉:
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
exclude>
excludes>
configuration>
plugin>
plugins>
build>
因为这是一个我们自定义的一套sdk,并不需要打成jar包。
将启动类和测试类都删掉,在resources目录下创建一个目录 META-INF
,在其中创建一个文件 spring.factories
:
创建一个包 client
,在其中创建一个类 CalculateClient
:
@AllArgsConstructor
@NoArgsConstructor
@Slf4j
public class CalculateClient {
private String host;
private String port;
public String select(String id) {
log.info("连接成功,地址为:{}", host);
log.info("连接成功,端口为:{}", port);
//返回查询结果
return id;
}
}
创建一个包 config
,在其中创建一个类 CalculateConfig
:
@Configuration
@ConfigurationProperties("calculate.client")
@Data
@ComponentScan
public class ClientConfig {
private String host;
private String port;
@Bean
public CalculateClient calculateClient() {
return new CalculateClient(host, port);
}
}
在我们刚刚创建的 spring.factories
文件中添加如下内容:
#spring boot starter
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.testspringbootstarter.config.ClientConfig
点击 install
将项目下载到本地仓库,这样才能够提供给别的项目使用:
在别的项目中引入我们刚刚开发的依赖:
<dependency>
<groupId>com.examplegroupId>
<artifactId>test-spring-boot-starterartifactId>
<version>0.0.1version>
dependency>
然后在项目的 application.yml
文件中配置 host
和 port
:
然后在测试类中编写一个测试方法:
@Autowired
private CalculateClient calculateClient;
@Test
public void test(){
String result = calculateClient.select("1");
System.out.println(result);
}
运行测试方法,结果如下:
到此,一个简单的 starter
就开发完毕了。