SpringBoot中的starter


我最近在面试中频繁会遇到这个问题,我自己回答的很不好,所以希望以此来记录一下,我的回答基本上遵循这样一个思路,这是一个什么东西,是什么背景,解决了什么问题,是如何实现的,再附加相关的面试题。总的来说不是什么技术大牛,但都是自己总结的。

starter是什么?

在整个技术发展中,整合资源的能力在不断加强,大家都希望于更加简单的搭建框架,专注于业务方向,而以前我们连接各种中间件的时间需要各式各样的jar包,这就导致了maven的出现,而maven是方便整合各种jar包,但是引入一个新的组件你可能需要引入特别多的jar包,jar包太多会引起了冲突,你需要去解决冲突,很是麻烦。Starter的出现极大的简化了整个流程,如果你需要引入一个新的组件,例如redis,你只需要引入spring-boot-starter-data-redis,就可以直接将redis加入配置进行开发了,而SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。总的来说,它的出现解决了传统 Spring 配置繁琐的问题。Spring Boot Starter 本质上是一种预定义的依赖注入集合,它将一组常用的依赖整合在一起,通过引入这些 Starter,可以快速地构建出符合特定需求的应用程序。

starter可以做什么

可以将一些通用的功能配置整合到一起做成一个starter,当别人需要使用的时候直接引入就可以了。

写一个简单的starter

1.创建Starter项目 就是一个正常的springboot项目 
2.定义Starter需要的配置类
3.编写Starter项目的业务功能
4.编写自动配置类
5.编写spring.factories文件加载自动配置类
6.打包安装
7.其它项目引用

我写了一个demo 是发短信的功能的 git地址如下

https://gitee.com/sunweibo5/Sms-spring-boot-starter.git

常见的一些问题

如何实现一个starter

这个就是实现的具体描述 给讲清楚就可以

starter的服务发现机制–SPI

SPI ,全称为 Service Provider Interface,是一种服务发现机制。
spring中类似的就是会扫描META-INF/spring.factories文件中配置接口的实现类名称,找到了这个配置类,配置类中有一个bean就强调了初始化的对象,spring会将这个bean放到容器中去管理
在这里插入图片描述

starter的自动装配

就是spring如何引入starter的详细过程
这个参考这个 写的还可以 自动装配原理

你写过哪些starter

发送短信,对接第三方支付的starter(git地址 :https://gitee.com/egzosn/pay-spring-boot-starter-parent?_from=gitee_search),一些可以重复复用的功能都可以

springboot中的跨域问题

什么是跨域,就是你从www.baidu.com:8080去访问www.google.com这就是跨域了,不同的协议,网址,端口都视为跨域,可以在springboot的后端实现。
解决方案有一下几种:
1.@CrossOrigin()
2.一个配置类 实现@WebMvcConfigurer接口

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值