位置: IT常识 - 正文

【SpringBoot】自定义Starter(springboot自带tomcat吗)

编辑:rootadmin
【SpringBoot】自定义Starter

推荐整理分享【SpringBoot】自定义Starter(springboot自带tomcat吗),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:springboot自带tomcat吗,springboot自带的web容器有哪些,springboot自动装配原理简述,springboot自带tomcat吗,springboot自动配置原理(易懂),springboot自动装配原理简述,springboot自动配置原理(易懂),springboot自动装配原理,内容如对您有帮助,希望把文章链接给更多的朋友!

🚩本文已收录至专栏:Spring家族学习之旅 👍希望您能有所收获

一.概述

在使用SpringBoot进行开发的时候,我们发现使用很多技术都是直接导入对应的starter,然后就实现了springboot整合对应技术,再加上一些简单的配置,就可以直接使用了。那什么是Starter呢?使用Starter对我们开发有什么好处?自定义Starter能对我们有什么帮助呢?

(1) 什么是Starter?

官方文档给出了如下描述:

Starters are a set of convenient dependency descriptors that you can include in your application. You get a one-stop shop for all the Spring and related technologies that you need without having to hunt through sample code and copy-paste loads of dependency descriptors. For example, if you want to get started using Spring and JPA for database access, include the spring-boot-starter-data-jpa dependency in your project.

概述来说就是:当我们想使用某项技术与Spring结合进行使用时,很多时候可直接导入该技术的starter,而不必再去找该技术所依赖的n个坐标一起cv进去。

例如:我们想使用Spring开发web项目,不使用Starter可能需要导入这些坐标:

有没有一种想跑路的感觉,此外如果你导的不同jar包之间存在版本不兼容还会产生一系列版本冲突问题。而使用springboot提供的starter只需要导入一个坐标即可包含上面所有的jar包以及自动适配版本。

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>(2) 为什么要自定义Starter?

问题产生:

​ 在我们的日常开发工作中,经常会有一些独立于业务之外的通用模块,在许多场景下都能够用到,我们经常将其备份到一个地方下,然后如果在某一个工程中需要用这块功能的时候,需要将代码硬拷贝到其中,重新集成一遍,麻烦至极。

问题解决:

​ 我们在开发过程为了方便常常会封装各种工具类,使我们在项目中能很方便的进行调用。同样的,我们也可以将这些可独立于业务代码之外的功通用模块封装成一个个starter,复用的时候只需要将其在pom中引用依赖即可,SpringBoot为我们完成自动装配,简直不要太爽。通过我们自定义的Starter相当于一个大的工具模块,导入其他项目能够快速的实现功能的引入与剔除。

常见场景:

【SpringBoot】自定义Starter(springboot自带tomcat吗)

​ 例如短信发送模块,自定义一些sdk使得调用者更加方便使用等等功能。

二.使用示例(1) 引入

​ 在我们的web项目中,例如博客等,可能会添加一个记录系统访客IP及访问次数的功能,而这个功能模块可以应用到很多的地方。接下来我们一起通过实现这个模块来学习如何自定义Starter,来看看如何做到只需要一个Starter坐标以及简单的yml配置即可在项目中无感引入或摘除这个功能模块。

功能介绍:

​ 本案例的功能是统计网站独立IP访问次数的功能,并将访问信息在后台持续输出。整体功能是在后台每10秒输出一次监控信息(格式:IP+访问次数) ,当用户访问网站时,对用户的访问行为进行统计。

​ 例如:张三访问网站功能15次,IP地址:192.168.0.135,李四访问网站功能20次,IP地址:61.129.65.248。那么在网站后台就输出如下监控信息,此信息每10秒刷新一次。

IP访问监控+-----ip-address-----+--num--+| 192.168.0.135 | 15 || 61.129.65.248 | 20 |+--------------------+-------+

实现分析:

如何记录访问数据

如上所述,我们记录的数据是一个字符串(IP地址)对应一个数字(访问次数)的形式,此处存储数据我们可以使用java提供的map模型,也就是key-value的键值对模型,或者具有key-value键值对模型的存储技术,例如redis技术。本案例使用map作为实现方案,当然你也可以根据需要使用redis作为解决方案。

统计功能运行位置,因为每次web请求都需要进行统计,我们有若干个接口,不可能在每个请求中都手动调用一遍吧?因此使用拦截器会是比较好的选择。不过在实现初期,先使用调用的形式进行测试,等功能完成了,再改成拦截器的实现方案。

为了提升统计数据展示的灵活度,为统计功能添加配置项。输出频度,输出的数据格式,统计数据的显示模式均可以通过配置实现调整。

输出频度,默认10秒数据特征:累计数据 / 阶段数据,默认累计数据输出格式:详细模式 / 极简模式

A typical Spring Boot starter contains code to auto-configure and customize the infrastructure of a given technology, let’s call that “acme”. To make it easily extensible, a number of configuration keys in a dedicated namespace can be exposed to the environment. Finally, a single “starter” dependency is provided to help users get started as easily as possible.

概述来说就是:我们在引入一个starter后可轻松开始使用并且能够在配置文件中设置参数对其实现灵活调整。

如此我们便按照官方文档所推荐用法简单的设计了一个简单starter~

项目整体结构一览:

(2) 功能开发(2.1) 环境搭建

创建一个SpringBoot工程,实现本案例相关功能只需要导入如下坐标即可

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>(2.2) 统计访问ip&次数

​ 功能类的制作并不复杂,创建一个业务类,

本文链接地址:https://www.jiuchutong.com/zhishi/299889.html 转载请保留说明!

上一篇:2023 年8个ChatGPT 的替代品(2023年会出什么车)

下一篇:【Maven】maven安装、IDEA创建maven的web项目、添加依赖、集成Tomcat(maven安装成功命令)

  • 苹果13promax续航时间是多少(苹果13promax续航怎么样)

    苹果13promax续航时间是多少(苹果13promax续航怎么样)

  • amazfit手表有没有快充(amazfitwatchface.)

    amazfit手表有没有快充(amazfitwatchface.)

  • windows7的任务栏可以改变位置和尺寸(windows7的任务栏可以改变大小吗)

    windows7的任务栏可以改变位置和尺寸(windows7的任务栏可以改变大小吗)

  • jkm-aloo华为手机什么型号(jkmaloo华为手机什么型号JKMAL00b)

    jkm-aloo华为手机什么型号(jkmaloo华为手机什么型号JKMAL00b)

  • wan/lan是什么接口(wan lan哪个接)

    wan/lan是什么接口(wan lan哪个接)

  • 微信发消息过于频繁怎么解决(微信发消息过于频繁要被限制多久)

    微信发消息过于频繁怎么解决(微信发消息过于频繁要被限制多久)

  • xp支持内存多大内存

    xp支持内存多大内存

  • 三星折叠手机是单卡还是双卡(三星最新款折叠手机是哪款2023)

    三星折叠手机是单卡还是双卡(三星最新款折叠手机是哪款2023)

  • 淘宝综合排序按什么排的(淘宝综合排序的原理机制?)

    淘宝综合排序按什么排的(淘宝综合排序的原理机制?)

  • 华为充电器max40w是什么意思(华为充电器max40w适用于华为什么机型)

    华为充电器max40w是什么意思(华为充电器max40w适用于华为什么机型)

  • 手机sd卡是什么意思(vivo手机内存卡怎么使用)

    手机sd卡是什么意思(vivo手机内存卡怎么使用)

  • 微信滴滴怎么提前约车(微信滴滴怎么提前预约打车)

    微信滴滴怎么提前约车(微信滴滴怎么提前预约打车)

  • vivo怎么限制流量使用(vivo怎么限制流量)

    vivo怎么限制流量使用(vivo怎么限制流量)

  • 手机怎么安装打印机(手机怎么安装打印控件)

    手机怎么安装打印机(手机怎么安装打印控件)

  • oppor15怎么退出耳机模式(oppor15怎么退出coloros恢复模式)

    oppor15怎么退出耳机模式(oppor15怎么退出coloros恢复模式)

  • 电脑开机怎么进入u盘(电脑开机怎么进入系统重装)

    电脑开机怎么进入u盘(电脑开机怎么进入系统重装)

  • 小米4手机是4g手机吗(小米4是几g手机)

    小米4手机是4g手机吗(小米4是几g手机)

  • 天猫精灵怎么设置应答(天猫精灵怎么设置打电话给别人)

    天猫精灵怎么设置应答(天猫精灵怎么设置打电话给别人)

  • 360极速浏览器如何打开极速模式(360极速浏览器如何清理缓存)

    360极速浏览器如何打开极速模式(360极速浏览器如何清理缓存)

  • 索尼xperia1支持人脸支付吗

    索尼xperia1支持人脸支付吗

  • iphonexs max是双卡吗(iphonexsmax是双卡吗两张卡如何装进去)

    iphonexs max是双卡吗(iphonexsmax是双卡吗两张卡如何装进去)

  • 抖音己重置是怎么回事(抖音已重置怎么解决)

    抖音己重置是怎么回事(抖音已重置怎么解决)

  • 王者荣耀中马可波罗技能有哪些?(王者荣耀中马可波罗的一技能和大招)

    王者荣耀中马可波罗技能有哪些?(王者荣耀中马可波罗的一技能和大招)

  • KunlunPlatform.exe是什么进程?KunlunPlatform.exe是安全的程序吗?

    KunlunPlatform.exe是什么进程?KunlunPlatform.exe是安全的程序吗?

  • 职工福利费的税额
  • 个人开发选项
  • 个人提供建筑安装劳务如何缴纳个人所得税
  • 销售额负数怎么报税
  • 美元利息结汇时结汇项目是什么
  • 其他应收款利息收入会计分录怎么写
  • 个税代扣代缴返还手续费如何入账
  • 误餐补助缴个税怎么申报
  • 个人销售自产农产品 个人所得税
  • 税种认定网上操作流程
  • 向董事赠送礼品怎么写
  • 转业士官自谋职业
  • 水泥销售成本怎么算
  • 房产交易如何避免个税
  • 多计提的应收账款如何调整
  • 简易征收进项税额转出什么意思
  • 建安企业增值税预缴
  • 对方承担税点的发票额怎么计算
  • 一般纳税人注销库存需要补交税吗
  • 母子公司划转房产怎么办
  • 采用审计软件有什么优缺点
  • 关联企业间融资方式
  • 固定资产累计折旧借方表示什么
  • 进项税大于销项税是不是不用交税了
  • 借款利息资本化金额
  • 汇算清缴相关分录有哪些
  • 对公账户是否有银行卡号
  • 计提税金怎么提
  • 笔记本cpu天梯图苹果
  • 小规模纳税人差额征税
  • cpqa1000.exe是安全进程吗 cpqa1000进程有什么作用
  • 出售报废的边角料收入会计分录
  • 纳税评估一般程序包括
  • 员工报销的费用
  • 其他应付款如何调平
  • 营业外收入账户性质
  • php中正则表达式
  • 分支机构分摊税款的计算
  • 带息应收票据会计处理
  • esp8266 dht22
  • php屏蔽错误
  • 抄税的步骤
  • php socket编程
  • 国税代开专票缴纳城建税分录
  • 中小型科技企业所面临的普遍问题是资金缺乏
  • 企业所得税本期已预交怎么算
  • 建筑安装包清工税率多少
  • 增值税为什么不能在税前扣除
  • 其他权益工具投资是金融资产吗
  • 异地预缴个人所得税账务技巧
  • 银行收到几分钱怎么做账
  • phpcms使用教程
  • 纳税信用等级区别在哪
  • 公司广告费用咨询费都应当作为管理费用对还是错
  • sql server 2008 r2 express 精简版与企业版的区别
  • 预缴的所得税怎么申请退税
  • 购买商品加包装怎么入账
  • 企业汇算清缴需要提供什么资料
  • 费用分析的作用
  • 年底所得税的会计分录
  • mysql按时间查询
  • sqlserver 教程
  • 电脑svchost占用cpu很大
  • iis支持什么后端语言
  • vm虚拟机中的浏览器在哪
  • window扫雷游戏在哪里
  • 双系统重装win11
  • ubuntu装eclipse
  • win10桌面底部
  • windows xp玩lol
  • linux的newgrp
  • windows 10 mobile--移动版
  • Win10怎么安装软件
  • 基于bootstrap的毕业设计
  • javascript编写
  • unity触摸屏控件
  • 简述javascript原型和原型链有什么特点?
  • 云阅卷查询成绩登录入口
  • 电子税务局打印发票提示本机未检测到
  • 保险公司的人可以查到买保险的人都买了什么保险吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设