读取配置文件方式: 批量读取: @ConfigurationProperties(prefix="xxx") 单个读取: @Value("${xxx}")如果需要指定配置文件:@PropertySource(value="https://www.huyubaike.com/biancheng/classpath:xxx.properties")区别: 批量获取: 支持松散绑定,支持复杂类型绑定,支持数据格式校验
8、你觉得在哪些业务中可以使用定时任务,在springboot中如何实现定时任务?哪些业务中可以使用定时任务: 订单审核、出库、订单超时自动取消与退款 优惠卷生成、发放与过期 物流信息推送与状态刷新 数据积压监控、日志监控、服务可用性探测作业 定时备份与更新数据 金融系统每天的定时结算 按月批量统计报表数据什么业务下需要要定时任务: https://www.csdn.net/shenghuo/tags/MtjaEg3sNjEzMjUtYmxvZwO0O0OO0O0O.htmlspringboot中如何实现定时任务: 方法上添加注解:@Scheduled(fixedDelay=second)@Scheduled(fixRate=second)@Scheduled(cron="cronPartten")主动启动类上添加注解:@EnableScheduling
9、你觉得在哪些业务中可以使用异步任务,在 springboot中如何实现异步任务?哪些业务中可以使用异步任务: 发送短信验证码 购买成功或者抽奖成功短信通知 卡卷或优惠卷发放 发送微信红包 微信消息通知 订单流程处理 定时批量处理(比如数据同步) 工作流性质的异步任务(未完成异步任务补偿)异步调用的经典业务场景: https://blog.csdn.net/fujuan08093206/article/details/79867367springboot中如何实现异步任务: 方法上添加注解:@Async开启异步线程注解,如果是同一个类中的其他方法调用,添加此异步处理注解,异步是不生效的 主启动类上添加注解:@EnableAsync
10、redis有哪些数据类型?你常用哪些数据类型?redis有哪些数据类型: string list set hash zset geospatial hyperloglog bitmaps常用哪些数据类型: string hash zset: 比如 做浏览记录 bitmaps: 比如 每日打卡(占用内存小)
11、如何在redis中保存一个java对象,又如何把redis中数据变为java对象?如何在redis中保存一个java对象: 将对象转换为json字符串,存入redis中如何把redis中数据变为java对象: 从redis中获取对象json字符串,再转为对应的对象注意: 需要自定义对象序列化方式
12、什么是序列化?为什么需要序列化,在哪些场景中需要序列化?什么是序列化: 把对象转换为字节序列的过程 将对象的状态信息转换为可以存储或传输的形式的过程什么是反序列化: 把字节序列恢复为对象的过程为什么需要序列化: 序列化的原因是 想将对象转换成流,方便存储和在网络上传输 。在哪些场景中需要序列化: 把内存中的对象状态保存到一个文件或者数据库中时候 用套接字再网络上传送对象的时候 通过RMI传输对象的时候(RMI是什么东西?):RMI总结来说就是远程调用对象,在一个jvm上调用另一个jvm的对象 。通过RPC调用接口,获取对象的时候 把对象存入redis中的时候
13、redis是单线程还是单进程的?redis是单线程还是单进程: 单线程:redis 为什么快: 为什么redis那么快?剖析redis快的原因: https://blog.csdn.net/qq3073959033/article/details/127415029 https://blog.csdn.net/weixin_43001336/article/details/122773260 1.纯内存KV操作 2.单线程操作 3.I/O 多路复用 4.Reactor 设计模式那么为什么Redis是单线程的:https://blog.csdn.net/weixin_44395707/article/details/106192656原因如下:1. CPU不是瓶颈:Redis的所有操作都是基于内存的,而CPU不是Redis的瓶颈 。在大多数情况下,Redis的瓶颈很可能是机器内存或网络带宽的大小 。如果我们想要更高的性能,可以使用单线程Redis,我们可以使用集群(多个进程)解决方案 。2. 并发性:并行性不是支持多个客户端的唯一策略 。Redis使用epoll和事件循环来实现并发策略并节省大量时间而无需上下文切换 。3. 易于实现:编写多线程程序可能会更加困难 。我们需要为线程添加锁和同步机制 。4. 易于部署:单线程应用程序可以部署在至少具有单个CPU内核的任何计算机上 。
经验总结扩展阅读
- 三 SpringBoot - Ribbon客户端负载均衡,Zuul网关,Config配置中心
- SpringBoot Starter缘起
- SpringBoot自定义注解+异步+观察者模式实现业务日志保存
- 四 AIR32F103 27倍频216MHz,CoreMark跑分测试
- 装配 SpringBoot自动配置流程
- 真我GTNeo2T测评_真我GTNeo2T续航情况测试
- Springboot 一行代码实现文件上传 20个平台!少写代码到极致
- SpringBoot内置工具类,告别瞎写工具类了
- 怎样测试儿童听力
- python渗透测试入门——基础的网络编程工具