我是靠谱客的博主 懵懂红牛,最近开发中收集的这篇文章主要介绍Java 技术知识点汇总,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景

面向百度编程,基本能解决大部分的问题。然而,技术用的熟练,时间久了却容易遗忘背后的技术思想,倒成了妥妥的搬运工了。

所以,偶尔针对用的技术,发几个灵魂拷问,也是很有必要的!

汇总近期一些技术思考及参考资料。

问题清单

  1. Tomcat 的 NIO 不是非阻塞的吗,而为什么 SpringMVC 却是阻塞式的?《Tomcat NIO 流程说明》
  2. SpringCloudGateway 为什么不能引入 spring-boot-starter-web ?《认识SpringBoot中的webFlux》
  3. Reactive 和 Java8 的 Streams 类有什么关系?
  4. 为什么 SpringCloudGateway 的路有规则最终转换为 AsyncPredicate,已经定义了 GatewayPredicate 了,为什么单独再定义一个类 AsyncPredicate?跟踪源码,这是两种不同的 lambda 表达式,GatewayPredicate 是 Predicate 的实现类,AsyncPredicate 是 Function 的实现类,用途不一样。
  5. SpringCloudGateway 框架中,ShortcutConfigurable 类的作用是什么?方便简化配置,对于多属性的路由规则来说,不需要熟记配置属性名称,直接用简化配置很方便。《ShortcutConfigurable 详解》
  6. 响应式编程基础,《Reactive 编程基础》。
  7. 《响应式编程基础》
  8. 什么是熔断?《漫画熔断》
  9. SpringCloudGateway 有哪些内置的路由规则?看 RoutePredicateFactory 实现类即可。
    在这里插入图片描述
  10. 微服务 Session 共享方案,基于 Redis 的 Session 共享方案原理是什么?《微服务 Redis Session 共享原理》
  11. SpringCloudGateway 路由 RewritePath 正则用法该怎么理解?《Spring Cloud Gateway 路径重写正则表达式的理解》
  12. Shiro 原理是什么?《授权、整合Spirng、Shiro过滤器》
  13. SpringSecurity 原理是什么?《SpringSecurity的@EnableWebSecurity注解》
  14. ApplicationContextInitializer 作用?BootStrap 和 Application 两种配置及关系
    ApplicationContextInitializer 接口用于在 Spring 容器刷新之前执行的一个回调函数,通常用于向 SpringBoot 容器中注入属性。《参考》
  15. 同时在 bootstrap.yml 和 application.yml 两个文件中都存在的属性,最终程序使用的到底是哪个文件的属性呢?《application 的配置会覆盖 bootstrap》
  16. SpringCloud 整合 nacos config 配置管理,有两种配置立即生效的方式:一种是直接用 ConfigurationProperties 搜集属性,另一种直接在使用 @Value 的类上加 @RefreshScope ,但是配置总不生效可能是什么原因呢?《当前应用直接引用的配置文件,必须在 bootstrap.yaml 里面配置服务名,shared-config 不受当影响》
  17. nacos 配置管理注解 @ConditionalOnProperty(name = "spring.cloud.nacos.config.enabled", matchIfMissing = true) 条件注入的含义是什么?默认不配置属性或者 spring.cloud.nacos.config.enabled = true 时,支持 nacos 配置。注解 havingValue 不设置值时,只要配置项的值不是 false 或 "false",都加载Bean。
  18. 一个类,既添加了 @Configuraion 又被注册到 spring.factories 自动启动类配置中,那么这个类会被注入几次呢?测试添加 @PostConstruct 打印信息来看,这个方法执行了两次,说明会注入两次,而且必须添加 spring.main.allow-bean-definition-overriding: true 配置才能对该类宝航的 Bean 实例注入成功。所以自定义自动配置类时,不应该添加 @Configuraion 注解,否则会适得其反。
  19. Maven 内置变量有哪些?

扩展补充

1. 三个 Spring 概念的区分

  1. Spring -Kafka
  2. Spring-Integration-kafka
  3. Spring-Integration

三者的关系及选择方式:https://cloud.tencent.com/developer/ask/sof/592687

2. 企业应用集成模式
https://www.enterpriseintegrationpatterns.com/

https://www.enterpriseintegrationpatterns.com/patterns/conversation/

3.分布式组件的会话过程,有三个目的 car :

  1. C 「Ensuring Consistency」保证一致性,这点想到了 Kafka 的一致性的保证机制:
    https://blog.csdn.net/yx444535180/article/details/127298764
    https://blog.csdn.net/qq_21383435/article/details/108720155
  2. A达成协议「Reach agreement」。
  3. R资源管理「Resource Management」。

简称小汽车 Car

最后

以上就是懵懂红牛为你收集整理的Java 技术知识点汇总的全部内容,希望文章能够帮你解决Java 技术知识点汇总所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部