面试
starter就是一组依赖的集合,引入一个starter就相当于引入了这一组依赖,简化依赖管理。
比如:spring-boot-starter-web包含了json、tomcat、spring-webmvc等多个依赖。
如何自定starter?
- 创建自动配置类:即选择将哪些对象(比如:连接客户端)注入到Spring容器中。
java
@Configuration
public class JedisAutoConfiguration {
@Bean
public MyService myService(JedisProperties properties) {
return new Jedis(properties);
}
}
- 创建属性类:加载使用者自定义的属性进来(username、password)
java
@ConfigurationProperties("jedis")
public class JedisProperties {
private String username;
private String password;
}
- 创建spring.factories文件:即使用者的Spring容器初始化时,会将我们的自动配置类加载进去。
java
在resources/META-INF目录下创建spring.factories文件,内容如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.JedisAutoConfiguration
- 使用者引入依赖:使用者引入我们自定义的starter依赖。