如何理解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依赖。
相关推荐
北极糊的狐6 分钟前
钉钉小程序报错data.formatTime is not a function是因为 axml 模板中不能直接调用 Page 内自定义方法!
java·小程序·钉钉
AINative软件工程12 分钟前
LLM 应用的 Feature Flag 工程实践:Prompt、模型与 AI 行为的生产安全灰度
后端·llm·ai编程
weixin_4316004426 分钟前
前端对接 SSE 的两种常见方式
前端·后端·学习·ai·sse·nest.js
Larcher7 小时前
React Router 不只是页面跳转:从 SPA 路由到权限守卫的完整实践
javascript·后端
Larcher7 小时前
大模型为什么每次回答都不一样?一文搞懂 Temperature、Top K 与 Top P
javascript·后端
LucianaiB9 小时前
毕业老学长给我留的最后一句话是:“AI 写的,别挂我名。” 我直接 神(Seed Evolving) 来!助我!
后端
IvanCodes9 小时前
RAG 实战教程(一):RAG 工作原理与完整流程——分片、索引、召回、重排和生成
人工智能·后端·agent
·薯条大王9 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
CodeSheep10 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
小满zs10 小时前
Go语言第八章(函数)
后端·go