springboot原理篇(四)

目录

四.自定义starter

4.1 记录系统访客独立IP访问次数(需求分析)

4.2 自定义starter步骤

4.3 开启定时任务功能

4.4 使用属性配置设置功能参数

4.5 增加拦截器

4.6 增加yml提示功能

五.springboot的启动流程


四.自定义starter

在自定义starter这里,会通过 统计独立IP访问次数 这个小案例来进行讲解。

4.1 记录系统访客独立IP访问次数(需求分析)

1. 每次访问网站行为均进行统计

2. 后台每10秒输出一次监控信息(格式:IP+访问次数)

3. 数据记录位置:Map / Redis

4. 功能触发位置:每次web请求(拦截器)

  • 步骤一:降低难度,主动调用,仅统计单一操作访问次数(例如查询)

  • 步骤二:开发拦截器

5. 业务参数(配置项)

  • 输出频度,默认10秒

  • 数据特征:累计数据 / 阶段数据,默认累计数据

  • 输出格式:详细模式 / 极简模式

4. 校验环境,设置加载条件

4.2 自定义starter步骤

第一步:创建一个springboot模块,并在pom.xml中导入web坐标

第二步:在模块的service层编写业务类IPCountService 

第三步: 编写配置类IpAutoConfiguration,并在类中将业务类IPCountService定义为一个bean

第四步:在resoueces目录下创建META-INF/spring.factories文件,并在文件中将配置类IpAutoConfiguration的全路径名按照下图格式配置在里面。

第五步:先用maven的clean命令将该模块清理一下,再用maven中的install命令将该模块安装到本地仓库。

第六步:将该模块的坐标导入到springboot_08_ssmp模块中的pom.xml文件里,并在controller层的BookController类中编写以下代码:

也就是说,当前端页面每次执行分页操作之后,后端的分页方法就能够知道是哪个ip执行的分页操作,执行了几次。

4.3 开启定时任务功能

自定义starter的内容已经结束了,下面的内容是对“记录系统访客独立IP访问次数”的功能完善。开启定时任务功能的步骤如下:

第一步:在 ip_spring_boot_starter 模块的 IpAutoConfiguration 配置类的上方添加@EnableScheduling 注解,代表开启定时任务功能。

第二步:在ip_spring_boot_starter模块的IPCountService业务类中增加下图中的代码,并在print方法上面添加@Scheduled(cron = "0/10 * * * * ?")注解代表设置定时任务。

第三步:对该模块重新执行clean、install。最后再重新启动ssmp模块,会发现定时任务已经添加成功。

4.4 使用属性配置设置功能参数

使用属性配置设置功能参数的步骤如下:

第一步:定义属性类,加载对应属性

有些属性已经提供了默认值

第二步:设置加载Properties类为bean

注意这里将@EnableConfigurationProperties注解替换为了@Import,因为使用@EnableConfigurationProperties注解制造出来的bean的名字不符合我们的要求。

第三步:根据配置切换设置

使用#{beanName.attrName}读取bean的属性

4.5 增加拦截器

增加一个SpringMVC的拦截器,拦截所有的Http请求,每当拦截到一个请求,就记录这个请求的ip地址以及这个ip地址请求了多少次。

步骤:

第一步:在ip_spring_boot_starter模块的interceptor包中编写一个拦截器类IpIntersceptor

第二步:在ip_spring_boot_starter模块的config包中编写一个配置类SpringMvcConfig用来添加拦截器

4.6 增加yml提示功能

步骤:

第一步:导入下图中的坐标

刷新pom.xml文件后,在META-INF目录下会生成一个spring-configuration-metadata.json文件,生成这个文件之后删掉这个坐标

第二步:在生成的文件里面进行自定义提示功能开发

保持原有文件的内容不变,在文件中“hints”后面的[ ]添加以下内容即可

五.springboot的启动流程

涉及到springboot源码,后期需要会再来补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真滴book理喻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值