请教一下 Java 高手

2020-08-11 10:00:24 +08:00
 Ficelle

我不是专业做 java 项目的,但是我在很长时间里,也用 java 做过一些项目,大多是使用脚手架,然后写逻辑。

部署呀,docker,cloud 系列我都能对做,对 shiro 和 spring secret 也了解了其中原理,能做一些改造或者是扩展,完成项目交付。 但是我始终觉得我无法掌握 spring,记得 N 年前,用 mvc 的时候,看 XML 还能勉强理解各项配置的含义,现在全部都是 @enable... 各种 @注解,我觉得我似乎已经无法彻底深入入门 spring 了。 但是我内心还是渴望理解它。

我也描述不出具体我情况,我就是想问下 java 大神,你们是不是对 spring 的细节都了如指掌,是怎么做到的呢? 我现在 32 岁了,没有 20 多岁刚入行的时候那么神记忆了感觉。

希望随便告诉我一下心得,谢谢铁子们。

4221 次点击
所在节点    Java
20 条回复
312ybj
2020-08-11 10:11:37 +08:00
spring 是一个框架集合, 里面有很多成熟的 web 框架,springMVC, springBoot 之类的。 很多人用,因为这个的确是“最佳实践”,脚手架嘛,能够节省很多人力物力。 但是“最佳实践”也会不断的更新,毕竟有这个生态在。 比如之前是 XML,xml 统一配置,所有的配置都在那几个 xml 里,想查看配置比较方便,但是 XML 可读性不高,后台注解就出现了,注解配置靠近代码,容易阅读,容易修改,自然受到青睐。
现在的情况是注解和 XML 大部分并存, 因为都有各自的优点, 他们都是为了业务而存在。
所以我觉得钻研技术不能光看 What,spring 发展这么多年了,不可能做到都了如指掌。
结合业务需求,想一想 Why,问题就开朗很多了,技术支撑服务,服务才能产生价值。 用技术不是为了炫技。
我推荐你一本书吧《码农翻身》,挺有意思的一本书。
lyusantu
2020-08-11 10:14:07 +08:00
emm.. 其实了解 shiro spring secret 原理,会 docker,能使用微服务已经超越一大批有着工作年限的真 Java 工程师了
lyusantu
2020-08-11 10:14:34 +08:00
另外 spring secret 指的是 spring security ?
autoname
2020-08-11 10:16:49 +08:00
不用都了解。用的时候在去了解,大致常用的就那么几个,

特殊需求的再去搜索,再去了解,没什么
Cbdy
2020-08-11 10:18:47 +08:00
可以买一本介绍 Spring Boot 的书看一下
autoname
2020-08-11 10:19:20 +08:00
有如修电脑,总不能会修电脑,也要会修主板吧,会修主板还要会修电源,修硬盘吧

只要能让电脑运行目的就达到了,

不要要求自己那么多,
wysnylc
2020-08-11 10:22:10 +08:00
配置是无需强记忆的,理解框架或者组件开发者的想法更重要
GM
2020-08-11 10:29:09 +08:00
旧版 Spring 主要是通过 xml 配置,Spring Boot 其实就是各种 starter 替代了 xml 配置,别的没太大变化。你找个简单的带 starter 的库跟踪一下启动流程,基本就懂了,别的更复杂的库,启动原理也是一个样。

这个是一个自己写过几个简单的 starter 的人的经验。
zzzmh
2020-08-11 10:41:06 +08:00
我反而感觉新的更简单了,用了 springboot 以后都感觉自己在退化,因为太无脑了。。。想学的话其实就找个文档,新开个项目然后自己写点东西,要是进展慢就 2 倍速看看 b 站视频
Ficelle
2020-08-11 11:13:04 +08:00
@lyusantu 我有一种,我能完成项目交付,只要有百度谷歌。
但是我无法理解其中的奥义。
最近在做一个项目,让我感触很深刻,年纪大了,这波过了我可能真的不会再深入了。
gadsavesme
2020-08-11 11:35:43 +08:00
把 spring 的源码大致看一遍,原理理解个大概,剩下别的东西你基本都能理解了,无法就是配置的地方换一换,会话里新增一些组件。
zhuangzhuang1988
2020-08-11 12:23:50 +08:00
asp.net 的 service 配置吧
比 java 简单多了
没有这么多乱七八糟的 magic
bfchengnuo
2020-08-11 12:46:06 +08:00
想了解 Spring 相关,可以看看小马哥的相关;
书《 SpringBoot 核心编程思想》
极客时间的《小马哥讲 Spring 核心编程思想》
慕课网和 SF 也有一些,推荐还是买书。

你说的 EnableXXX 这种书里都有写,深度基本是够了,看完基本能有个学习方向
iintothewind
2020-08-11 12:50:46 +08:00
跟工作相关的, 就只是用到就学点就好了.
真心想提升, 别学 spring 这一套了, 太老了, 过时了.
Vertx 真心要有意思太多了, 再想玩有意思的, 学 akka-actors 把, akka-actors, akka-stream, akka-http 一套下来, 你就会觉得 spring 真心没意思了.
AlisaDestiny
2020-08-11 13:44:52 +08:00
没必要去记忆的,现在技术日新月异,现在用的东西,说不定下个版本就 Deprecated 了。我觉得了解 Springboot 的启动流程,框架的大致结构,其中有哪些组件就行了,用的时候再去翻翻文档完全没问题。
zhaorunze
2020-08-11 13:47:36 +08:00
参考 spring 实现方式,简化其内容,自己实现一个就理解了。
dadaoqueyi
2020-08-11 13:55:18 +08:00
springboot@EnableXX 不难理解的,还是你 springmvc ioc 那一套,只不过一个扫描放在 xml 的 bean 定义,一个用注解来开启自动配置 bean 放入容器,最近在搞 springboot 教程,感兴趣可以看下我 github 教程的代码,后面 @Enable 的相关的知识点也会出篇文章的
luckyrayyy
2020-08-11 13:55:19 +08:00
没必要,Spring 越来越庞大,里面很多都是实现细节,并不需要了解。我个人觉得首先清楚他的用法,然后就是设计思路和基于的技术,然后最多看看怎么做抽象的,用了哪些设计模式为啥这么用,就完全够了。
redford42
2020-08-11 14:20:56 +08:00
你把注解点进去看看哇
xxxyy2y
2020-08-11 18:36:59 +08:00
springboot 注解只是给某个类或者某个方法某个属性打个标签而已,和 xml 没有什么本质区别,他只是一个对象管理容器,你可以理解只不过原来扫描 xml 变成扫描注解把实例出来的 bean 放容器中

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/697267

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX