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

请教一下 Java 高手

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

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

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

    我也描述不出具体我情况,我就是想问下 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     Solana     3285 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 11:16 PVG 19:16 LAX 03:16 JFK 06:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86