momenta后端实习(java)一面

项目:
1 下单业务画一个流程图,分别说明过程中调用了哪些接口
2 微信支付为什么生成一个预交易订单?
3 调用微信支付接口超时了怎么处理?
框架:
4 springBoot中@Autowired注解为什么不推荐使用?
5 git新建和切换分支的命令
6 pull和fetch的区别
算法:
三数之和
手写观察者模式,观察者模式和发布订阅者模式有什么区别

复盘:
2.预交易订单号的作用?
    通过prepay_id保证系统的幂等性,即同一笔订单,用户支付多少次,即使遇到了系统故障,不管用户尝试了多少次,最后都只扣款一次。prepay_id又可以称为幂等令牌,将幂等令牌设置为数据库的唯一索引。

如何保证这笔交易订单是合法商户创建的呢?
    商户拿微信颁发的私钥进行签名,微信端用公钥进行解密,保证了订单来自合法商家

如果商户系统故障,导致用户支付的状态没有存入数据库怎么办?
    微信端会轮训请求商家端支付回调接口。商户在没有接收到微信支付结果通知的情况下需要主动调用查询订单API查询支付结果。

如何保证返回的支付成功请求来自微信?
    微信端使用私钥签名,商户端用公钥解密。

4.springBoot中@Autowired注解为什么不推荐使用?
    不推荐@Autowired使用在属性上进行注入。Autowired本质使用反射进行属性注入,在对象创建完成后进行。对象创建过程:成员变量赋默认值->成员变量初始化->构造器->属性注入。如果标注在属性上,则在构造器中就不能使用这个属性(对象)的属性和方法。
    因此可以在setter方法或在构造器上家@Autowired注解;或者可以使用@Resource替代@Autowired,当然也可以使用@RequiredArgsConstructor构造器方式注入。

6.pull和fetch的区别
    git pull:拉取。即从远程仓库拉取最新版本文件到本地,自动合并/merge。
    git fetch:抓取,获取。即从远程获取最新版本文件到本地,不自动合并/merge。
全部评论
复盘的是你不会的吗
点赞 回复 分享
发布于 2023-11-15 22:09 北京
您过了吗
点赞 回复 分享
发布于 2023-11-07 14:07 上海
老哥方便交流一下吗我也要面momenta
点赞 回复 分享
发布于 2023-11-07 14:07 上海

相关推荐

08-18 23:08
门头沟学院 Java
1.讲实习中缓存结构怎么设计的,都有什么。(新简历还有有点陌生,表达有待加强)2.讲大key问题(后面看一下文档说明,表达再严谨点)3.突然调整分片数后,改动会不会更大,(这当然重新加载预热数据,再看看有没有别的改动小的办法)4.数据倾斜问题描述。(新简历还有有点陌生,表达有待加强)5.数据倾斜问题解决后,改变key怎么过度到新的方案,面临上线变更什么办法解决(主备节点切换过渡,再看看有没有别的改动小的办法)6.讲一下项目api网关使用场景,和普通网关区别(后面看一下文档说明,表达再严谨点)7.健康检查怎么做的(新简历还有有点陌生,表达有待加强)8.项目刚启动,节点未启动,健康检查判断他挂了,...
X_徐迹:如果从 RFC 规范定义的语义来看: GET 方法就是安全且幂等的,因为它是「只读」操作,无论操作多少次,服务器上的数据都是安全的,且每次的结果都是相同的。所以,可以对GET 请求的数据做缓存,这个缓存可以做到浏览器本身上(彻底避免浏览器发请求),也可以做到代理上(如nginx),而且在浏览器中 GET 请求可以保存为书签 POST 因为是「新增或提交数据」的操作,会修改服务器上的资源,所以是不安全的,且多次提交数据就会创建多个资源,所以不是幂等的。所以,浏览器一般不会缓存 POST 请求,也不能把 POST 请求保存为书签。 但是实际过程中,开发者不一定会按照 RFC 规范定义的语义来实现 GET 和 POST方法。比如: 可以用 GET 方法实现新增或删除数据的请求,这样实现的 GET 方法自然就不是安全和幂等。 可以用 POST 方法实现查询数据的请求,这样实现的 POST 方法自然就是安全和幂等。
查看15道真题和解析
点赞 评论 收藏
分享
评论
点赞
20
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务