springboot的starter是什么?Spring Boot Starter如何创建项目?

springboot使用了特定的方式来进行配置,目的是用来简化新Spring应用的初始搭建以及开发过程。那springboot的starter是什么?下面来我们就来给大家讲解一下springboot的starter的含义。

Spring Boot 的便利性体现在,它简化了很多烦琐的配置,这对于开发人员来说是一个福音,通过引入各种 Spring Boot Starter 包可以快速搭建出一个项目的脚手架。

Spring Boot Stater可以理解为这是一个启动器,这个启动器会自动依赖其他组件,一站式获取你需要的与spring有关的组件。

举个例子:

如果你想使用 Sping 和 JPA 访问数据库,只需要你的项目包含 spring-boot-starter-data-jpa、spring-boot-starter-jdbc 依赖项,你就可以完美进行。

如果你想开发一个web应用程序,只需要你的项目包含 spring-boot-starter-web 依赖项就可以了。

Spring Boot Starter如何创建项目?

创建一个项目 spring-boot-starter-demo,pom.xml 配置代码如下所示。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

创建一个配置类,用于在属性文件中配置值,相当于 spring.data.mongo 这种形式,代码如下所示。

import org.springframework.boot.context.properties.ConfigurationProperties;
import lombok.Data;
@Data
@ConfigurationProperties("spring.user")
public class UserPorperties
{
    private String name;
}

再定义一个 Client,相当于 MongoTemplate,里面定一个方法,用于获取配置中的值,代码如下所示。

public class UserClient
{
    private UserPorperties userPorperties;
    public UserClient()
    {}
    public UserClient(UserPorperties p)
    {
        this.userPorperties = p;
    }
    public String getName()
    {
        return userPorperties.getName();
    }
}

自动创建客户端

一个最基本的 Starter 包定义好了,但目前肯定是不能使用 UserClient,因为我们没有自动构建 UserClient 的实例。接下来开始构建 UserClient,代码如下所示。

@Configuration
@EnableConfigurationProperties(UserPorperties.class)
public class UserAutoConfigure
{
    @Bean
    @ConditionalOnProperty(prefix = "spring.user", value = "enabled", havingValue = "true")
    public UserClient userClient(UserPorperties userPorperties)
    {
        return new UserClient(userPorperties);
    }
}

Spring Boot 会默认扫描跟启动类平级的包,假如我们的 Starter 跟启动类不在同一个主包下,如何能让 UserAutoConfigure 生效?

在 resources 下创建一个 META-INF 文件夹,然后在 META-INF 文件夹中创建一个 spring.factories 文件,文件中指定自动配置的类:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.cxytiandi.demo.UserAutoConfigure

Spring Boot 启动时会去读取 spring.factories 文件,然后根据配置激活对应的配置类,至此一个简单的 Starter 包就实现了。

按照这些方法就可以创建Spring Boot 项目了,SpringBoot不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。最后大家如果想要了解更多其他工具教程知识,敬请关注奇Q工具网。

推荐阅读:

java技术栈面试流程是什么?附java技术栈面试题

java怎么写服务器?java写服务器方法

json对象和js对象的区别是什么?JS对象与JSON格式数据如何转换?