设为首页 加入收藏

TOP

玩转SpringBoot原理:掌握核心技术,成为高级开发者(一)
2023-07-25 21:37:29 】 浏览:63
Tags:玩转 SpringBoot 原理 成为高

本文通过编写一个自定义starter来学习springboot的底层原理,帮助我们更好的使用springboot集成第三方插件

  • 步骤一:创建项目
  • 步骤二:添加依赖
  • 步骤三:创建自动配置类
  • 步骤四:创建属性类
  • 步骤五:创建服务类
  • 步骤六:添加自动配置类到Springboot自动配置列表中
  • 步骤七:打包并发布
  • 步骤八:在其他项目中使用自定义starter
  • 结论

步骤一:创建项目

世界上最伟大的成就,不是从不失败,
而是每次失败后,仍能振作起来。

首先,我们需要创建一个Springboot项目。删除启动类,配置文件,添加META-INF文件夹和spring.factories,最终项目结构如下

步骤二:添加依赖

在创建完项目后,我们需要在pom.xml文件中添加以下三个依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <version>2.7.0</version>
    <optional>true</optional>
</dependency>

第一个依赖是Springboot的starter依赖,第二个依赖是Springboot的自动配置依赖。第三个是自动生成帮助文档和元数据,以帮助IDE自动完成和参数提示。

步骤三:创建自动配置类

当你感到疲惫时,不要停下脚步,
因为你不知道,下一步可能就是成功。

自动配置类是整个自定义starter的核心部分。我们需要在自动配置类中完成以下任务:

  • 使用@Configuration注解将该类标记为配置类。
  • 使用@EnableConfigurationProperties注解引入属性配置类。
  • 使用@Bean注解将自定义服务类注入到Spring容器中。

下面是一个示例代码:

@Configuration
@EnableConfigurationProperties(YoulaiProperties.class)
public class YoulaiAutoConfiguration {

    private final YoulaiProperties properties;

    public YoulaiAutoConfiguration(YoulaiProperties properties) {
        this.properties = properties;
    }
    
    @Bean
    public YoulaiService myService() {
        return new YoulaiService(properties.toString());
    }
}

步骤四:创建属性类

光阴似箭,日月如梭,生命短暂而珍贵,
让我们在有生之年做自己想做的事情。

属性类用来存储自定义的配置属性。我们需要在属性类中完成以下任务:

  • 使用@ConfigurationProperties注解将该类标记为属性类。
  • 使用prefix属性指定属性名前缀。
  • 定义对应的属性字段,并提供gettersetter方法。

下面是一个示例代码:

@Component
@ConfigurationProperties(prefix = "youlai")
public class YoulaiProperties {

    private String bio = "youlai-mall 是基于Spring Boot 2.7、Spring Cloud 2021 & Alibaba 2021、Vue3、Element-Plus、uni-app等全栈主流技术栈构建的开源商城项目,涉及 后端微服务、 前端管理、 微信小程序和 APP应用等多端的开发。";
    private String serverPath="https://admin.youlai.tech/#/login?redirect=/dashboard";
    private String apiPath="https://api.youlai.tech/doc.html#/home";

    public String getBio() {
        return bio;
    }

    public void setBio(String bio) {
        this.bio = bio;
    }

    public String getServerPath() {
        return serverPath;
    }

    public void setServerPath(String serverPath) {
        this.serverPath = serverPath;
    }

    public String getApiPath() {
        return apiPath;
    }

    public void setApiPath(String apiPath) {
        this.apiPath = apiPath;
    }

    @Override
    public String toString() {
        return "YoulaiProperties{" +
                "bio='" + bio + '\'' +
                ", serverPath='" + serverPath + '\'' +
                ", apiPath='" + apiPath + '\'' +
                '}';
    }
}

步骤五:创建服务类

服务类是自定义starter提供的服务。我们需要在服务类中定义服务方法,提供的服务。我这演示读取配置文件

下面是示例代码:


public class YoulaiService {

    private String config;

    public YoulaiService(String config) {
        this.config = config;
    }

    public void doSomething() {
        System.out.println("Config value is: " + config);
    }
}

步骤六:添加自动配置类到Springboot自动配置列表中

为了让Springboot能够自动配置我们的starter,我们需要将自动配置类添加到META-INF/spring.factories文件中,sp

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Maven安装详解 下一篇Java/JDK各版本主要特性汇总

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目