如何理解Spring Boot中的starter?

面试

starter就是一组依赖的集合,引入一个starter就相当于引入了这一组依赖,简化依赖管理。

比如:spring-boot-starter-web包含了json、tomcat、spring-webmvc等多个依赖。

如何自定starter?

  1. 创建自动配置类:即选择将哪些对象(比如:连接客户端)注入到Spring容器中。
java 复制代码
@Configuration
public class JedisAutoConfiguration {
    @Bean
    public MyService myService(JedisProperties properties) {
        return new Jedis(properties);
    }
}
  1. 创建属性类:加载使用者自定义的属性进来(username、password)
java 复制代码
@ConfigurationProperties("jedis")
public class JedisProperties {
    private String username;
    private String password;
}
  1. 创建spring.factories文件:即使用者的Spring容器初始化时,会将我们的自动配置类加载进去。
java 复制代码
在resources/META-INF目录下创建spring.factories文件,内容如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.JedisAutoConfiguration
  1. 使用者引入依赖:使用者引入我们自定义的starter依赖。
相关推荐
掘金者阿豪7 小时前
一次 413 Content Too Large 排查:真正的问题可能不在你的后端
后端
程序员贺加贝8 小时前
一次 SaaS ERP 主数据生命周期设计:Policy、PreCheck 与结构化阻断原因
java·后端·架构·saas
苏三说技术8 小时前
Redis已正式接入AI
后端
思考着亮8 小时前
11.Redis与Cache-Aside旁路缓存策略
后端
catino8 小时前
spring-Bean
java·后端·spring
深入云栈8 小时前
Netty 4.2.x 源码深度解析 (十一):EventExecutor 业务线程池 —— 防止 IO 线程阻塞的并发模型
java·后端
吴声子夜歌8 小时前
Java——基本类型
java·开发语言
柠檬味拥抱8 小时前
鸿蒙 AI 对话实战:用蓝耘 MaaS 给礼物 App 装上「多轮对话选礼大脑」
后端
唐青枫8 小时前
别再把 build.zig 当配置文件:Zig 构建系统从零到实战
后端
Naylor8 小时前
只借不占:Rust 的引用与借用
后端·rust