如何理解 Spring Boot 中的 Starter

科技资讯 投稿 5700 0 评论

如何理解 Spring Boot 中的 Starter

    spring xml 模式 (远古模式,并不推荐)
  • spring API 来创建 Spring Bean

1 spring API 来创建 Spring Bean

接下来通过 Spring 的基础 API 来创建 Spring Bean。

    创建 Bean 类:创建一个普通的 Java 类,定义需要注入的属性、构造函数、以及方法。
  1. 在类上添加注解:使用 Spring 的注解将该类声明为一个 Bean。可以使用 @Component、@Service、@Repository、@Controller 等注解,这些注解都被 Spring 识别为 Bean。
  2. 配置 Bean:可以通过 Java 配置类使用 使用 @Configuration 和 @Bean 注解配置 Bean。
// Bean 类
public class MyService {
    private MyDao myDao;
    
    public MyService(MyDao myDao {
        this.myDao = myDao;
    }
    
    public void doSomething( {
        // do something with myDao
    }
}

// Bean 配置类
@Configuration
public class MyConfig {
    @Bean
    public MyService myService(MyDao myDao {
        return new MyService(myDao;
    }
    
    @Bean
    public MyDao myDao( {
        return new MyDao(;
    }
}

在上面的示例中,我们定义了一个名为 MyService 的 Bean,它依赖 MyDao。我们使用 @Configuration 注解来定义配置类,并使用 @Bean 注解来定义 Bean。在 myService( 方法中,我们使用构造函数注入 MyDao。

即使没有 Spring Boot Starter,使用 Spring 基础 API 来创建 Bean 比较容易,但还是需要创建相关的配置类。

2 约定大于配置

约定大于配置”(Convention over configuration)这一理念来快速地开发、测试、运行和部署 Spring 应用,并能通过简单地与各种启动器(如 spring-boot-web-starter)结合,让应用直接以命令行的方式运行,不需再部署到独立容器中。

引入 starter 的依赖定义,在配置文件中编写约定的配置即可。

spring-boot-starter 实现流程如下:

01、定创建starter项目,定义 Spring 自身的依赖包和 Bean 的依赖包 ;

02、定义spring.factories 文件

定义自动加载类,文件内容格式如下:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
xx.xx.xx.xx.xx.MyConfiguration

spring boot 会根据文件中配置的自动化配置类来自动初始化相关的 Bean、Component 或 Service。

03、配置自动配置类

3 开源 springboot starter 学习项目

项目地址:

rocketmq-spring 的本质是一个 Spring Boot starter , 项目的源码设计 :


每一年,我都会给自己制定读书计划,一定要读完两到三本技术书籍,并做好笔记。

https://mp.weixin.qq.com/s/WHK7HNyaeM2cQTpJZiTuJQ

一:Linux 书籍:

    Linux 0.0.1 内核分析与操作系统
  • Linux 内核设计的艺术

二:Java 书籍:

    分布式java应用技术与实践 (分布式启蒙书)
  • 大型网站系统与Java中间件实战 (中间件启蒙书
  • Alibaba Sentine 流控
  • nacos 配置中心
  • 重构
  • Netty in Action

三:数据结构:

    Java数据结构和算法
  • 编程珠玑
  • 算法导论
  • leetcode go 算法书

四:数据库:

    MySQL技术内幕
  • 数据库系统概念

编程笔记 » 如何理解 Spring Boot 中的 Starter

赞同 (28) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽