V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ficelle
V2EX  ›  Java

请教一下 Java 高手

  •  
  •   Ficelle · 2020-08-11 10:00:24 +08:00 · 4226 次点击
    这是一个创建于 1600 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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