我不是专业做 java 项目的,但是我在很长时间里,也用 java 做过一些项目,大多是使用脚手架,然后写逻辑。
部署呀,docker,cloud 系列我都能对做,对 shiro 和 spring secret 也了解了其中原理,能做一些改造或者是扩展,完成项目交付。 但是我始终觉得我无法掌握 spring,记得 N 年前,用 mvc 的时候,看 XML 还能勉强理解各项配置的含义,现在全部都是 @enable... 各种 @注解,我觉得我似乎已经无法彻底深入入门 spring 了。 但是我内心还是渴望理解它。
我也描述不出具体我情况,我就是想问下 java 大神,你们是不是对 spring 的细节都了如指掌,是怎么做到的呢? 我现在 32 岁了,没有 20 多岁刚入行的时候那么神记忆了感觉。
希望随便告诉我一下心得,谢谢铁子们。
1
312ybj 2020-08-11 10:11:37 +08:00 1
spring 是一个框架集合, 里面有很多成熟的 web 框架,springMVC, springBoot 之类的。 很多人用,因为这个的确是“最佳实践”,脚手架嘛,能够节省很多人力物力。 但是“最佳实践”也会不断的更新,毕竟有这个生态在。 比如之前是 XML,xml 统一配置,所有的配置都在那几个 xml 里,想查看配置比较方便,但是 XML 可读性不高,后台注解就出现了,注解配置靠近代码,容易阅读,容易修改,自然受到青睐。
现在的情况是注解和 XML 大部分并存, 因为都有各自的优点, 他们都是为了业务而存在。 所以我觉得钻研技术不能光看 What,spring 发展这么多年了,不可能做到都了如指掌。 结合业务需求,想一想 Why,问题就开朗很多了,技术支撑服务,服务才能产生价值。 用技术不是为了炫技。 我推荐你一本书吧《码农翻身》,挺有意思的一本书。 |
2
lyusantu 2020-08-11 10:14:07 +08:00
emm.. 其实了解 shiro spring secret 原理,会 docker,能使用微服务已经超越一大批有着工作年限的真 Java 工程师了
|
3
lyusantu 2020-08-11 10:14:34 +08:00
另外 spring secret 指的是 spring security ?
|
4
autoname 2020-08-11 10:16:49 +08:00
不用都了解。用的时候在去了解,大致常用的就那么几个,
特殊需求的再去搜索,再去了解,没什么 |
5
Cbdy 2020-08-11 10:18:47 +08:00
可以买一本介绍 Spring Boot 的书看一下
|
6
autoname 2020-08-11 10:19:20 +08:00
有如修电脑,总不能会修电脑,也要会修主板吧,会修主板还要会修电源,修硬盘吧
只要能让电脑运行目的就达到了, 不要要求自己那么多, |
7
wysnylc 2020-08-11 10:22:10 +08:00
配置是无需强记忆的,理解框架或者组件开发者的想法更重要
|
8
GM 2020-08-11 10:29:09 +08:00
旧版 Spring 主要是通过 xml 配置,Spring Boot 其实就是各种 starter 替代了 xml 配置,别的没太大变化。你找个简单的带 starter 的库跟踪一下启动流程,基本就懂了,别的更复杂的库,启动原理也是一个样。
这个是一个自己写过几个简单的 starter 的人的经验。 |
9
zzzmh 2020-08-11 10:41:06 +08:00
我反而感觉新的更简单了,用了 springboot 以后都感觉自己在退化,因为太无脑了。。。想学的话其实就找个文档,新开个项目然后自己写点东西,要是进展慢就 2 倍速看看 b 站视频
|
10
Ficelle OP |
11
gadsavesme 2020-08-11 11:35:43 +08:00
把 spring 的源码大致看一遍,原理理解个大概,剩下别的东西你基本都能理解了,无法就是配置的地方换一换,会话里新增一些组件。
|
12
zhuangzhuang1988 2020-08-11 12:23:50 +08:00
|
13
bfchengnuo 2020-08-11 12:46:06 +08:00
想了解 Spring 相关,可以看看小马哥的相关;
书《 SpringBoot 核心编程思想》 极客时间的《小马哥讲 Spring 核心编程思想》 慕课网和 SF 也有一些,推荐还是买书。 你说的 EnableXXX 这种书里都有写,深度基本是够了,看完基本能有个学习方向 |
14
iintothewind 2020-08-11 12:50:46 +08:00
跟工作相关的, 就只是用到就学点就好了.
真心想提升, 别学 spring 这一套了, 太老了, 过时了. Vertx 真心要有意思太多了, 再想玩有意思的, 学 akka-actors 把, akka-actors, akka-stream, akka-http 一套下来, 你就会觉得 spring 真心没意思了. |
15
AlisaDestiny 2020-08-11 13:44:52 +08:00
没必要去记忆的,现在技术日新月异,现在用的东西,说不定下个版本就 Deprecated 了。我觉得了解 Springboot 的启动流程,框架的大致结构,其中有哪些组件就行了,用的时候再去翻翻文档完全没问题。
|
16
zhaorunze 2020-08-11 13:47:36 +08:00
参考 spring 实现方式,简化其内容,自己实现一个就理解了。
|
17
dadaoqueyi 2020-08-11 13:55:18 +08:00
springboot@EnableXX 不难理解的,还是你 springmvc ioc 那一套,只不过一个扫描放在 xml 的 bean 定义,一个用注解来开启自动配置 bean 放入容器,最近在搞 springboot 教程,感兴趣可以看下我 github 教程的代码,后面 @Enable 的相关的知识点也会出篇文章的
|
18
luckyrayyy 2020-08-11 13:55:19 +08:00
没必要,Spring 越来越庞大,里面很多都是实现细节,并不需要了解。我个人觉得首先清楚他的用法,然后就是设计思路和基于的技术,然后最多看看怎么做抽象的,用了哪些设计模式为啥这么用,就完全够了。
|
19
redford42 2020-08-11 14:20:56 +08:00
你把注解点进去看看哇
|
20
xxxyy2y 2020-08-11 18:36:59 +08:00
springboot 注解只是给某个类或者某个方法某个属性打个标签而已,和 xml 没有什么本质区别,他只是一个对象管理容器,你可以理解只不过原来扫描 xml 变成扫描注解把实例出来的 bean 放容器中
|