概述
背景
面向百度编程,基本能解决大部分的问题。然而,技术用的熟练,时间久了却容易遗忘背后的技术思想,倒成了妥妥的搬运工了。
所以,偶尔针对用的技术,发几个灵魂拷问,也是很有必要的!
汇总近期一些技术思考及参考资料。
问题清单
- Tomcat 的 NIO 不是非阻塞的吗,而为什么 SpringMVC 却是阻塞式的?《Tomcat NIO 流程说明》
- SpringCloudGateway 为什么不能引入 spring-boot-starter-web ?《认识SpringBoot中的webFlux》
- Reactive 和 Java8 的 Streams 类有什么关系?
- 为什么 SpringCloudGateway 的路有规则最终转换为 AsyncPredicate,已经定义了 GatewayPredicate 了,为什么单独再定义一个类 AsyncPredicate?跟踪源码,这是两种不同的 lambda 表达式,GatewayPredicate 是 Predicate 的实现类,AsyncPredicate 是 Function 的实现类,用途不一样。
- SpringCloudGateway 框架中,ShortcutConfigurable 类的作用是什么?方便简化配置,对于多属性的路由规则来说,不需要熟记配置属性名称,直接用简化配置很方便。《ShortcutConfigurable 详解》
- 响应式编程基础,《Reactive 编程基础》。
- 《响应式编程基础》
- 什么是熔断?《漫画熔断》
- SpringCloudGateway 有哪些内置的路由规则?看 RoutePredicateFactory 实现类即可。
- 微服务 Session 共享方案,基于 Redis 的 Session 共享方案原理是什么?《微服务 Redis Session 共享原理》
- SpringCloudGateway 路由 RewritePath 正则用法该怎么理解?《Spring Cloud Gateway 路径重写正则表达式的理解》
- Shiro 原理是什么?《授权、整合Spirng、Shiro过滤器》
- SpringSecurity 原理是什么?《SpringSecurity的@EnableWebSecurity注解》
- ApplicationContextInitializer 作用?BootStrap 和 Application 两种配置及关系
ApplicationContextInitializer 接口用于在 Spring 容器刷新之前执行的一个回调函数,通常用于向 SpringBoot 容器中注入属性。《参考》 - 同时在 bootstrap.yml 和 application.yml 两个文件中都存在的属性,最终程序使用的到底是哪个文件的属性呢?《application 的配置会覆盖 bootstrap》
- SpringCloud 整合 nacos config 配置管理,有两种配置立即生效的方式:一种是直接用 ConfigurationProperties 搜集属性,另一种直接在使用 @Value 的类上加 @RefreshScope ,但是配置总不生效可能是什么原因呢?《当前应用直接引用的配置文件,必须在 bootstrap.yaml 里面配置服务名,shared-config 不受当影响》
- nacos 配置管理注解
@ConditionalOnProperty(name = "spring.cloud.nacos.config.enabled", matchIfMissing = true)
条件注入的含义是什么?默认不配置属性或者 spring.cloud.nacos.config.enabled = true 时,支持 nacos 配置。注解 havingValue 不设置值时,只要配置项的值不是false 或 "false"
,都加载Bean。 - 一个类,既添加了
@Configuraion
又被注册到spring.factories
自动启动类配置中,那么这个类会被注入几次呢?测试添加@PostConstruct
打印信息来看,这个方法执行了两次,说明会注入两次,而且必须添加spring.main.allow-bean-definition-overriding: true
配置才能对该类宝航的 Bean 实例注入成功。所以自定义自动配置类时,不应该添加@Configuraion
注解,否则会适得其反。 - Maven 内置变量有哪些?
扩展补充
1. 三个 Spring 概念的区分
- Spring -Kafka
- Spring-Integration-kafka
- Spring-Integration
三者的关系及选择方式:https://cloud.tencent.com/developer/ask/sof/592687
2. 企业应用集成模式
https://www.enterpriseintegrationpatterns.com/
https://www.enterpriseintegrationpatterns.com/patterns/conversation/
3.分布式组件的会话过程,有三个目的 car :
- C 「Ensuring Consistency」保证一致性,这点想到了 Kafka 的一致性的保证机制:
https://blog.csdn.net/yx444535180/article/details/127298764
https://blog.csdn.net/qq_21383435/article/details/108720155 - A达成协议「Reach agreement」。
- R资源管理「Resource Management」。
简称小汽车 Car
。
最后
以上就是懵懂红牛为你收集整理的Java 技术知识点汇总的全部内容,希望文章能够帮你解决Java 技术知识点汇总所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复