开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情
1.新建工程
默认pom.xml文件为:
2.pom.xml文件引入依赖
<parent>
<groupId>org.springframework.boot</groupId>
<version>2.1.4.RELEASE</version>
<artifactId>spring-boot-starters</artifactId>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencies>
3.新增com.imooc.springboot包
- 新增x类文件:无任何含义,为了能够更好的创建多个包
- 新增configure包
- 新增service包
4.定义接口类ISplitService
public interface ISplitService {
List<String> split(String value);
}
代码说明: 定义一个传参为字符串返回数组的方法
5.新增impl包并且实现接口方法
public class SplitServiceImpl implements ISplitService {
@SuppressWarnings("all")
@Override
public List<String> split(String value) {
List<String> list = new ArrayList<>();
list.add(value);
list.add("123");
return list;
}
}
代码说明:
- @SuppressWarnings("all"):注解是jse提供的注解。作用是屏蔽一些无关紧要的警告。使开发者能看到一些他们真正关心的警告。从而提高开发者的效率
- split方法:根据传入的字符串,构建成一个list返回
6.定义配置配置文件SplitAutoConfigure
SplitAutoConfigure.java
@Configuration
@ConditionalOnClass(value = {ISplitService.class, SplitServiceImpl.class})
public class SplitAutoConfigure {
@Bean
@ConditionalOnMissingBean
ISplitService starterService(){
return new SplitServiceImpl();
}
}
代码说明:
- @Configuration:注解配置类
- @ConditionalOnClass:这个注解通俗的说就是Spring工程中引用了value里的包 才会构建这个bean
7.新增META-INF文件夹,并且新增spring.factories配置文件
spring.factories配置如下:(配置对应的SplitAutoConfigure)
org.springframework.boot.autoconfigure.EnableAutoConfiguration=
com.imooc.springboot.configure.SplitAutoConfigure
8.生成jar包
生成的目录如下:
架包文件如下:
9.另外一个项目在pom.xml配置依赖
10.调用该方法
可以看到返回的结果和我们设想的一样