如何开发自定义Spring Boot Starter

本文详细介绍了如何开发自定义的Spring Boot Starter。从揭秘Spring Boot的自动配置机制开始,包括Auto Configuration Classes和在application.properties中设置自定义属性。接着,通过构建一个简单的Greeter库,展示了创建Autoconfigure模块、编写pom.xml文件以及如何在应用中使用Starter的过程。最后,讲解了如何将jar包添加到本地Maven仓库。
摘要由CSDN通过智能技术生成

如何开发自定义 Spring Boot Starter

1. 概要

Spring Boot 为大多数流行的开源项目提供启动器;我们可以编写自己的自定义启动器。如果我们有一个用于组织内部的内部库,那么如果要在Spring引导上下文中使用它,那么为它编写一个启动器将是一个很好的办法

这些启动器使开发人员能够避免冗长的配置并快速启动他们的开发。然而,由于有很多事情是在后台发生的,有时很难理解一个注释或仅仅在pomc .xml中包含一个依赖项是如何支持这么多特性的

在本文中,我们将揭开Spring引导的神秘面纱,以了解在幕后发生了什么。然后,我们将使用这些概念为我们自己的自定义库创建启动器

2. 揭秘Spring Boot的自动配置

2.1 Auto Configuration Classes

当Spring Boot启动时,会在类路径中查找一个名为spring.factories的文件,该文件位于META-INF目录中。让我们来看看spring-boot-autoconfigure项目中这个文件的一个片段:

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,\
org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration,\
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration,\
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration

这个文件将名称映射到Spring Boot将尝试运行的不同配置类。因此,根据这个代码片段,Spring Boot将尝试运行RabbitMQ、Cassandra、MongoDB和Hibernate的所有配置类

这些类是否实际运行将取决于类路径上的依赖类的存在。例如,如果在类路径中找到MongoDB的类,MongoAutoConfiguration将运行,所有与mongo相关的bean将被初始化

这个条件初始化是由@ConditionalOnClass注释控制的,让我们看看MongoAutoConfiguration类的代码片段,看看它的用法:

@Configuration
@ConditionalOnClass(MongoClient.class)
@EnableConfigurationProperties(MongoProperties.class)
@ConditionalOnMissingBean(type = "org.springframework.data.mongodb.MongoDbFactory")
public class MongoAutoConfiguration {
    // configuration code
}

现在,如果类路径中有MongoClient,那么这个配置类将运行,用用默认配置设置初始化的MongoClient填充Spring bean工厂

2.2 application.properties

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值