我和 Spring 大神的一天

简介: 先介绍一下故事的5位主人公。 Josh Long 龙之春:Spring 技术布道师,撰写过5部著作,录制过3部畅销的培训视频,是一位开源软件贡献者。 Spencer Gibb:Spring 技术布道师,Spring Cloud核心项目的联合创始人。

先介绍一下故事的5位主人公。

Josh Long 龙之春:
Spring 技术布道师,撰写过5部著作,录制过3部畅销的培训视频,是一位开源软件贡献者。

Spencer Gibb:
Spring 技术布道师,Spring Cloud核心项目的联合创始人。除了深厚的Java开发经验,他在Scala和Python等其他语言的使用上也颇有建树。

亦盏:
Spring Cloud Alibaba 项目组成员。

洛夜:
Spring Cloud Alibaba 项目组成员。

小马哥:
Java劝退师,Apache Dubbo PPMC,Spring Cloud Alibaba 项目组成员。

场景一:会场

1、参会日常
SpringOne Tour在国内开发者的受欢迎程度还是挺高的,500人的会场基本都坐满了,而且还遇到了不少熟人。大家寒暄一声,握个手,合个影,发个朋友圈,然后就都径直入了座。

北京已经入了冬,所以没看到有穿格子衫的程序员,但见到一位老奶奶,上前问了下,说是年轻的时候是搞技术的,表示不学点技术怕跟不上时代。突然想起小马哥常说的,技术层出不穷,跟着小马哥学视频撸代码才是王道。一时,不明觉厉。

_2018_11_12_1_18_29

2、和Spencer 聊代码
Spencer本次大会演讲的主题是 "Spring Cloud Gateway"。

说起这个gateway项目,就不得不提到Netflix的Zuul。Spring Cloud 1.x版本的gateway使用的是Zuul 1.x。Spring Cloud 2.x版本起初也是计划使用Zuul 2.x版本的,但是等了很久,Netflix一再跳票,于是Spencer联合其它的开发者们自己整了一套 "Spring Cloud Gateway" 项目,用来代替Zuul 2.x。同时,也在Github上声明了不再集成 Zuul2.x。

1541484786570_097abc45_acbc_45c3_bd2c_dc3aebc1572b

看头像有点眼熟?没错,上周,就是Spencer在Spring 官方博客上宣布了:阿里巴巴开源 Spring Cloud Alibaba,并发布了首个预览版本。由于Spencer的助攻,Spring Cloud Alibaba上线刚一周,star数就已经突破1000。

Spencer结束演讲后,我们和他聊了下:

  • Spring Cloud Greenwich 目前已经发布了M1版本,在未来的两周内将会发布Greenwich的release版。可惜,Spring Cloud Alibaba 赶不上Greenwich这个版本了,只能在下个大版本H上车了,有点遗憾。虽然不在大版本里,但是Spring Cloud Alibaba仍会按照既有的计划去release版本。
  • Spring Cloud孵化器里有个Spring Cloud loadbalancer项目,这个项目未来会替换掉Netflix的ribbon,结合之前的"Zuul 2.x版本不被SpringCloud2.x版本使用"和"Eureka 2.0 开源工作宣告停止,继续使用风险自负"的两个事件,看起来Spring Cloud貌似想跟Netflix脱离关系。

聊完后,合个影是少不了的:

_2018_11_07_5_13_05

左起:小马哥、Spencer、亦盏、洛夜

场景二:酒店

先上照片。

_2018_11_12_1_13_18

一天的会议结束之后,Josh Long表示白天的交流太多,demo还没来得及做,打算晚上攻坚。我们去了他住的酒店。Josh一进房间就跟我们吐槽这边的空气,还拿了个"防毒"口罩给我们看了下。

1、Demo for Spring Cloud Alibaba

在 Spring Cloud Alibaba 项目上,Josh 跑通了Nacos Discovery,Nacos Config和 Sentinel 的Demo,实现了第一个版本中的诸多功能:

引入 Sentinel Starter 依赖,并配置 Sentinel Dashboard 的地址,无需修改任何代码,就完成了 Servlet、RestTemplate、Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。

引入 Nacos Config Starter 依赖,并配置 Nacos Server 地址。即可直接从 Nacos 配置中心获取应用配置,且实现配置的实时刷新,推送轨迹实时可查。

引入 Nacos Discovery Starter 依赖,并配置 Nacos Server 地址。即可直接使用 Nacos 的服务注册与发现,与原有的 Eureka 、Consul 使用方式无任何区别。

「Demo地址」:https://github.com/spring-tips/bootiful-alibaba

1541515844186_48b13b48_3c58_4ae7_8b82_8c4889d9cd94_jpeg

2、日常 Q&A

Q1: 如何评价 Java11 开始收费?
我身边大部分技术人在生产环境部署的 OpenJDK,而非 Oracle JDK,正如Alibaba 有自己的 JDK 和JVM,所以不用过度担心。另外,我想也会有不少厂商会基于OpenJDK进行定制化开发,并开源出来反哺社区和开发者。

Q2: 如何看待像 Go 这类新语言对 Java 的冲击?
基于 Loom 和 Panama 这两项技术,Java 也会拥有自己的轻量级线程,可以轻松的调用系统命令,这时候,谁还会需要 Go 呢?

Q3: 如何解决 Spring Boot 应用启动慢的问题 ?
基于 Spring fu + Graal VM 这两项技术可以让Java 应用的启动时间,从3秒提升至几十毫秒,快了差不多 100 倍,可以预研下这些技术,但还不建议直接生产,因为我们自己也在做实验。

Q4: 除了工作之外,会有其他娱乐活动吗?例如玩游戏吗?
从差不多去年开始玩游戏,最开始玩的是红白机,觉得那个很好玩。现在我喜欢玩 Switch , 塞尔达特别好玩,我已经通关两次了。。第二次我选择了最高难度。我听说过 Dota,但是我没玩过。

离开Josh房间,天已渐亮。

我们仨人相视一笑,然后在朋友圈发了同一张照片。

IMG_1612

有程序员的地方,就有格子衫

欢迎加入Aliware开发者钉钉群:21711817

相关文章
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
97 17
Spring Boot 两种部署到服务器的方式
springboot自动配置原理
Spring Boot 自动配置原理:通过 `@EnableAutoConfiguration` 开启自动配置,扫描 `META-INF/spring.factories` 下的配置类,省去手动编写配置文件。使用 `@ConditionalXXX` 注解判断配置类是否生效,导入对应的 starter 后自动配置生效。通过 `@EnableConfigurationProperties` 加载配置属性,默认值与配置文件中的值结合使用。总结来说,Spring Boot 通过这些机制简化了开发配置流程,提升了开发效率。
40 17
springboot自动配置原理
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
307 2
SpringBoot集成Shiro权限+Jwt认证
本文主要描述如何快速基于SpringBoot 2.5.X版本集成Shiro+JWT框架,让大家快速实现无状态登陆和接口权限认证主体框架,具体业务细节未实现,大家按照实际项目补充。
60 11
|
14天前
|
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
191 12
最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)
自动装配是现在面试中常考的一道面试题。本文基于最新的 SpringBoot 3.3.3 版本的源码来分析自动装配的原理,并在文未说明了SpringBoot2和SpringBoot3的自动装配源码中区别,以及面试回答的拿分核心话术。
最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
43 10
|
20天前
|
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
71 8
Spring Boot 自动配置机制:从原理到自定义
Spring Boot 的自动配置机制通过 `spring.factories` 文件和 `@EnableAutoConfiguration` 注解,根据类路径中的依赖和条件注解自动配置所需的 Bean,大大简化了开发过程。本文深入探讨了自动配置的原理、条件化配置、自定义自动配置以及实际应用案例,帮助开发者更好地理解和利用这一强大特性。
114 14
|
2月前
|
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
104 1
SpringBoot入门(7)- 配置热部署devtools工具
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等