spring项目中starter包的原理,以及自定义starter包的使用

本文深入解析Spring Boot Starter的工作原理,包括它如何简化项目配置,以及自定义Starter的步骤。介绍了自动配置的概念,通过@ConfigurationProperties和@EnableConfigurationProperties注解实现属性绑定,以及@SpringBootApplication注解在启动过程中的作用。最后,详细阐述了自定义Starter的流程,包括编写配置、服务和自动配置类,以及打包和在其他项目中引入。
摘要由CSDN通过智能技术生成

MAVEN项目中starter的原理

一.原始方式

我们最早配置spring应用的时候,必须要经历的步骤: 1.pom文件中引入相关的jar包,包括spring,redis,jdbc等等 2.通过properties或者xml配置相关的信息 3.不断调试直到可以使用。

问题:时间长,复杂,同时在写下一个项目的时候大概率要经过相同的模式配置才能达到可以使用的状态。同时在众多的jar中,我们需要相互配置依赖间的版本关系,十分的复杂

原始版本:

我们就想到能不能把这些jdbc整合起来,类似于深度学习中anaconda下载依赖一样去管理,依赖间的关系不需要我们去负责,而是交给spring去管理。

starter版本:

我们可以将starter包看作是一个包装箱,把复杂的事情都交给了spring负责,官方维护starter包会导入的东西。而我们只需要知道那个starter包是有什么用处,例如:spring-boot-starter-web是负责spring web项目的依赖。

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

二.starter内部详情

starter文件也只是一个pom文件,而不是jar,它的目的也是去自动的引入其他的jar文件,上图展示的spring-boot-starter-web中的依赖就有spring-boot-starter。

starter只是一个pom文件

下面也就是starter的关键所在,请问我们为什么引入了starter之后只需要配置一点点的个性化设置,例如创建application.properties仅仅配置端口等等就可以完成启动应用?是谁帮助我们配置了其他复杂的信息?

引出自动配置

三.自动配置

1.自动配置类的梳理

自动配置主要通过xxxAutoConfiguration这些类来实现,我们查找一个这样的类来进行示例演示

上图是DataSourceAutoConfiguration这个自动配置类,我们可以看到类上的几个注解。

  • @Configuration 将该类标记为配置类, @Configuration注解的类可以看作是能生产让Spring IoC容器管理的Bean实例的工厂
  • @ConditionalOnClass表示某个类位于类路径上时候,才会实例化这个bean
  • @EnableConfigurationProperties注解的作用是使@ConfigurationProperties注解生效。如果只配置@ConfigurationProperties注解,在spring容器中是获取不到yml或者prope
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值