对一些 Spring 的基础内容和 web 设计不太清楚,比如我看了 Spring 实战这本书,其中有一章讲到 Spring webflux ,因为我有 Spark 编程经验,所以看函数式编程和 lambda 可以理解,但是里面很多 Spring 注解我不知道是什么意思,对于 Spring 框架的 web 分层、设计模式也一头雾水
我的理解是 webflux 使用异步的方式替换了 MVC 的线程池处理方式,提高了处理效率,有没有一些书籍或者文章在宏观上对 Spring 有一个完整介绍?大概某些框架是做什么,解决什么问题,Spring 实战其实有章节将这部分,但是我认为有点太简单了
Spring 系列有很多内容,我不可能都学,目前主流的技术方案是什么?
1
chrisia 2022-08-25 11:28:12 +08:00
千万别看 webflux 这部分内容,这块内容较难,资料也不多,用的也不多。建议先从传统 MVC 开始学起,这部分内容视频教程还是很多的吧。
|
2
RedBeanIce 2022-08-25 11:32:30 +08:00
其实楼主漏写了东西,你为什么要系统的学习 spring ,是为了面试还是什么,如果不写清楚,可能得不到正确的答案。
|
3
msaionyc 2022-08-25 11:40:33 +08:00
学 spring 的话,webflux 这块儿可以先略过,这不是它的特色和重点。
|
4
Bingchunmoli 2022-08-25 11:46:45 +08:00 2
1. 推荐文档,速成就看培训机构的视频或者搜出来的项目实战
2. ioc 解耦,aop 动态代理 它解决了横切面编程以及注入编程的窘境 site: https://blog.csdn.net/qq_41723615/article/details/89088901 webflux 属于 spring-mvc-webflux 不属于 spring ,他是异步的 spring-mvc 解决方案 3. spring ,spring-mvc ,springboot ; spring 是底层容器,springmvc 是 web 层框架 springboot 是脚手架一类的,快速开发。 主流方案是 springboot 直接部署,或者 springcloud 微服务(有 k8s(小公司多为阿里云商业化产品)或者自建集群) |
5
CaptainD OP @RedBeanIce 也许以后面试可以用上吧,不过目前一个是更好更快的完成公司项目,另一个像深入研究下 spring 体系和 Java web 工程,毕竟之前的数据开发主要侧重于脚本、notebook ,对工程理解还是不够
|
6
JxQg597 2022-08-25 13:02:50 +08:00 8
利好这个网站 https://www.pdai.tech/
每一个知识点学完,手写个 Demo 。 |
7
Jiecolo 2022-08-25 13:34:49 +08:00 2
这个网站你值得拥有 https://www.baeldung.com/
|
8
m8syYID5eaas8hF7 2022-08-25 13:53:09 +08:00
看 springboot 官网文档, 用 springboot 做一个简单的 demo 出来.
能跑通一个单体的 springboot web 项目后, 可以试着搭建一套 springcloud 微服务框架出来. webflux 可以等深入理解以后再看, 实际工作里用的地方比较少, 并且有其他更好的解决方案. |
10
q447643445 2022-08-25 13:59:34 +08:00
就 spring framework , spring boot 学完就行了吧 其他的用到啥学啥.大差不差
|
12
Kipp 2022-08-25 14:02:54 +08:00 via iPhone
Baeldung 太好了,想问下别的语言有类似的网站么
|
14
RedBeanIce 2022-08-25 14:12:11 +08:00
每个人场景不一样,我只能简单的说下我自己的看法,没有深入思考这个问题,可能有很多疏漏
@CaptainD 1 ,个人建议,先利用视频或者官方文档玩一下 SSM 框架( spring,springmvc,mybatis ),学会使用之后 2 ,可以看一下 GitHub 的 mini spring 。small spring 等等,你会很好的对 spring 基本运行等等有很多了解,(直接看 spring 源码可能看不懂) 3 ,Java web 体系我不懂,告辞。。?有点太大了 4 ,简单看一下 mini spring ,然后看看 spring 整合 mybatis ?顺便提前看看 mybatis ?? 感觉这几点下来,都要几个月了。 |
15
CaptainD OP @RedBeanIce mini spring 这点没想到,简单看了一下感觉还不错,SSM 大四学过一点,当时毕业设计用 scrapy 爬了点数据,然后用 SSM 写了个小页面做显示,不过当时我很菜,写的挺垃圾,技术也没理解透,再加上毕业三年了,基本也都忘光了
|
16
JxQg597 2022-08-25 15:03:10 +08:00
@CaptainD 单纯的接手项目,会用一些工具包的功能就好了。这里推荐 [Hutool] 。
如果想深入还是要学习 Java 基础的。 - 学习工具包或者 Spring 框架源码,学习到不同功能用到不同的设计模式。 - Java 面向对象可以了解到分层以及代码的高复用和低耦合。 - Java 反射可以了解反射的实现以及这样设计的优势。 - 主流单体用 SpringBoot 让你低配置快速上手 Spring 框架,微服务 SpingCloud 配合 RPC 组件(HTTP,Dubbo)。 - WebFlux 我暂时没有用到,可以看看大佬有没有好的解释。 - 框架学习可以看看 [凤凰框架] 。 - ORM 可以看看 [MyBatisPlus] 。 - 解决自己遇到的问题才能更好更快的学习。 |
18
fzdwx 2022-08-25 15:14:47 +08:00
就核心就是一个 AOP ,多写几个注解然后切一下大概就知道怎么玩了。整个 Spring 就是这个东西。
|
19
commoccoom 2022-08-25 15:18:18 +08:00 1
Spring 实战这本书一定要看第四版,这版的第一部分针对 Spring 写得最好,后面那几版都不太行。不适合入门。
|
20
commoccoom 2022-08-25 15:19:37 +08:00
@Jiecolo Baeldung 太赞了,我都当搜索引擎用了。
|
21
n37r09u3 2022-08-25 16:55:17 +08:00
看国产 java 之父的视频。。。
|
22
karott7 2022-08-25 17:25:55 +08:00
Baeldung 真的很赞
|
23
buruoyanyang 2022-08-25 17:26:02 +08:00
这么说,我想完整的补充一下 webflux 、reactor 相关的知识,有无合适的书籍,其次是视频之类的推荐啊,各位大佬~
|
24
chrisia 2022-08-25 17:36:15 +08:00
Baeldung 的文章质量非常高,google 也经常排前面哈哈
|
25
yazinnnn 2022-08-25 17:41:22 +08:00
webflux 不如 resteasy reactive, reactor api 也远远不如 mutiny, 为什么不看看神奇的 quarkus 呢
|
26
cyberkakashi 2022-08-25 19:10:59 +08:00 via Android
问一下怎么收藏帖子啊,以后慢慢看
|
27
cyberkakashi 2022-08-25 19:11:18 +08:00 via Android
@cyberkakashi 找到了
|
28
mmdsun 2022-08-25 23:13:37 +08:00
反应式: https://www.v2ex.com/t/755754#r_10230522
Spring 文档( Web Reactive 、Servlet 都有) : https://docs.spring.io/spring-framework/docs/current/reference/html/index.html 目前主流还是 Web Servlet 。不过我也看到不少项目用 Reactive 的,而且 Reactive Streams 是 JDK9 加入的标准。 框架的 web 分层、设计模式、分包,直接学习 DDD 。 其实现在 DDD 也不是最好的设计,现在的选择有很多: https://herbertograca.com/2017/07/03/the-software-architecture-chronicles/ |
30
cco 2022-08-31 11:39:25 +08:00
https://www.baeldung.com/ 看楼上发了,我就下发一遍,我是看了不少这个网站。另外学习的话,快速入门就看看 B 站的视频,由简到难,甚至有些项目你只需要会有些皮毛就能应付了。
|
31
Createsequence 2022-09-21 16:29:41 +08:00 2
这段时间也在看 Spring ,关于文章楼上已经提了不少了,这里我从个人的角度分享一点经验。
如果没有明确的目标,但是希望能够通过阅读源码,使得自己具备一定在工作或者面试中处理 Spring 相关的问题的话,从下面两点上手可能是比较快并且收益比较大的: 1 、Spring 容器的启动:入口是八股文说烂了的 refresh() 方法,不过把这个流程看懂,可以搞明白: ( 1 )了解 Spring 容器的体系:包括整个 BeanFactory 和 Application 体系的整体设计,以及一部分组件的存在(是的,知道这玩意存在可能本身也是一种收获); ( 2 )了解很多关键步骤发生的时机:比如配置文件的加载,环境的切换,国际化处理、事件的机制,以及一部分钩子函数调用; 2 、Bean 的创建:这个也是被八股文说烂的,不过确实也很重要,看懂以 getBean 方法的调用开始的整个 Bean 创建流程,可以搞明白: ( 1 )配置文件上的 Bean 到底是怎么完成依赖注入变成容器里面的 Bean 的(废话); ( 2 )一堆钩子函数,比如各种 PostProcossor 、Aware 还有其他回调的触发时机,这点尤其重要,因为 Spring 本身就是通过这边的各种回调把五花八门的功能缝合在一起的; ( 3 )进一步了解 Spring 容器的各种组件 /机制,以及这些它们所支持的功能,比如别名、FactoryBean ,三级缓存,还有类型注入(泛型解析机制),甚至是各种工具类; 从个人体验上来说,这两部分的 Spring 最核心的功能,先了解会对后续阅读 MVC 、AOP 、事务、事件等内容(一起其他八股文)会很有帮助,并且,如果平时会有需要在 Spring 环境下开发各种工具类和通用组件的需求,看完以后也会有一些新的感悟,发现一些新的玩法。 |
32
beishengjiang 2023-01-03 21:41:59 +08:00
@Jiecolo 这个网站怎么用,请教一下你的最佳实践。我英语比较差,开谷歌网页翻译可以用起来吗?
|
33
beishengjiang 2023-01-03 21:42:46 +08:00
@Kipp 这个网站怎么用起来呀,感觉都是英文的摸不到头脑,麻烦指教一下
|
34
beishengjiang 2023-01-03 21:43:29 +08:00
@karott7 这个网站怎么用起来呀,求个最佳实践
|
35
beishengjiang 2023-01-03 21:44:16 +08:00
@chrisia 这样的吗,看来都是英语水平高的大佬,我都没 Google 到过
|