SprintBoot深入浅出讲解场景启动器Starter
什么是场景启动器 Starter?
在 Spring Boot 中,Starter 是一种约定俗成的方式,可以将基础依赖项捆绑在一起,从而快速引导应用程序进入不同的场景。场景启动器通常使用以下命名约定:spring-boot-starter-*
。例如, spring-boot-starter-web
提供了在应用程序中使用Spring MVC的所有必需依赖项。
如何自定义 Starter?
可以自定义自己的 Starter ,以便在应用程序中需要使用时轻松引入自己的依赖项。可以通过以下步骤创建自定义 Starter 。
- 新建一个 Maven 工程。
- 命名方式为:
spring-boot-starter-{yourName}
。 - 添加依赖项,这些依赖项将被捆绑在一起作为 Starter 。
- 实现
org.springframework.boot.autoconfigure.EnableAutoConfiguration
接口编写自己的 AutoConfiguration。
创造一个自定义 Starter 示例
以下示例将展示如何创建一个名为 spring-boot-starter-mybatis
的自定义 Starter ,并将 Mybatis 依赖项捆绑在一起。
创建 Maven 工程
打开 Maven ,新建一个 Maven 工程,并使用命名约定,命名方式为:spring-boot-starter-mybatis
。
添加依赖项
将以下依赖项添加到 pom.xml 中:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
实现自动配置
接下来,需要实现自己的配置项。可以通过如下步骤实现:
- 创建一个
xxxProperties
类,定义配置属性。 - 创建一个
xxxAutoConfiguration
类,定义@Configuration
、@ConditionalOnClass
等注解,通过xxxProperties
中的属性值自动配置 Mybatis 。
@Configuration
@ConditionalOnClass(value = { SqlSessionFactoryBean.class, SqlSessionFactory.class,
SqlSession.class, org.mybatis.spring.boot.autoconfigure.MybatisProperties.class })
@EnableConfigurationProperties(MybatisProperties.class)
public class MybatisAutoConfiguration {
private final MybatisProperties properties;
public MybatisAutoConfiguration(MybatisProperties properties) {
this.properties = properties;
}
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
factory.setDataSource(this.properties.getDataSource());
return factory.getObject();
}
}
将自定义 Starter 发布到仓库
在将自定义 Starter 发布到 Maven 仓库/中央仓库之前,需要在工程的根目录下执行以下 Maven 命令:
mvn clean install
使用自定义 Starter 示例
在新的项目中使用自定义 Starter 非常简单。只需将以下 Starter 依赖项添加到新 Mavn 工程的 pom.xml 文件中即可:
<dependency>
<groupId>com.example</groupId>
<artifactId>spring-boot-starter-mybatis</artifactId>
<version>1.0.0</version>
</dependency>
以此,我们就完成了自己的 Starter ,并使用起来非常简单。也可以将 spring-boot-starter-mybatis
发布到 Maven 仓库/中央仓库,使得其他开发者也可以使用该 Starter 。
结束语
以上是关于 Sprint Boot 中场景启动器 Starter 的详细介绍与示例分析。通过自定义 Starter ,可以将既有的依赖捆绑在一起,让项目搭建更简单、更方便。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SprintBoot深入浅出讲解场景启动器Starter - Python技术站