• 请不要在回答技术问题时复制粘贴 AI 生成的内容
x97bgt
V2EX  ›  程序员

Spring 到底要怎么入门?

  •  
  •   x97bgt · May 13, 2019 via iPhone · 7380 views
    This topic created in 2734 days ago, the information mentioned may be changed or developed.

    交叉看了一个月的《 Sring 实战》和《精通 Spring 4.x 》,依赖注入和切面的概念大致能理解了,但对 DAO、持久化这些看得迷迷糊糊的。

    更严重的是,完全没有一个全局上的了解。可能或多或少地知道对象、配置是怎么得到的,改改老代码还凑合着,但如果要我从零写一个 Demo,那完全不行了。

    可能是刚开始做程序员,以前没接触过类似的框架,术语一下子涌来实在太晕了。大家都是怎么入门的?

    42 replies  •  2019-05-22 14:36:49 +08:00
    Caballarii
    Caballarii
    May 13, 2019❤️1
    1
    先动手再说
    abcbuzhiming
    abcbuzhiming
    May 13, 2019❤️1
    2
    动手,不会从零写 demo ?网上大把例子,你照着抄,把每个环节都搞懂是什么功能,你就入门了,spring 如果不深究原理的话,说到底就是个胶水
    vincel
    vincel
    May 13, 2019
    3
    技术类真的要动手,在实际应用中解决问题才能学到东西
    murmur
    murmur
    May 13, 2019
    4
    先抄配置 把你的业务跑起来 再去问为什么
    gz911122
    gz911122
    May 13, 2019
    5
    spring 就是一坨 xxxx

    你就先凑合用着就行了
    x97bgt
    x97bgt
    OP
    May 13, 2019 via iPhone
    6
    @Caballarii #1 @abcbuzhiming #2 @vincel #3 @murmur #4 @gz911122 #5 大佬们有什么推荐的书或教程么?还是就直接网上搜文章来实践?
    libook
    libook
    May 13, 2019❤️4
    7
    Spring 是一个框架,而框架是被设计出来解决特定应用场景上的需求和问题的,如果不了解需求和问题上来就学框架,肯定就会感觉没有头绪。

    自己了解到的是 Sprint 的初衷是降低 Java EE 的使用难度,而 Java EE 是为各种企业级应用场景(最常见的是 Web )提供了各种现成的 API,这些 API 自己用 Java SE 写成本很高,而且相比来说 Java EE 更标准化、社区更成熟,所以往往人们都是直接用 Java EE 的接口。

    不知道你是否学明白 Java SE 了,如果学明白了可以自己尝试用 Java 核心 API 写一些简单的 Web 接口,体会一下哪些工作其实是可以用 Java EE 的接口来实现的;然后再使用 Java EE 写一些简单的 Web 接口,体会一下 Spring 是如何降低 Java EE 的使用难度的;最后再了解一下业内的一些企业级服务在开发过程遇到的一些问题是靠着 Spring 提供的哪些思想或者基于 Spring 的哪些思想来解决的。理解了需求和解决问题的思路应该就能更快掌握这个框架。

    当然 Java EE 很重,Spring 一方面要应对 Java EE,另一方面要给这么多年来的各种各样企业级服务提供解决方案,所以 Spring 也会很重,涉及到的思想和方案也会很多,学起来也就很花时间。

    我自己学 Spring 当年是直接放弃了的。。。所以我对 Java 技术栈的了解可能并不准确。
    这些年都是用其他语言的轻框架来做 Web,但不管什么语言什么框架,肯定都是用于解决特定的问题而不是用来制造麻烦的。
    WEBUG
    WEBUG
    May 13, 2019 via Android❤️1
    8
    建议 spring boot
    NoKey
    NoKey
    May 13, 2019
    9
    找个后端程序员,让他在没有网络,没有原来代码,只提供需要的 jar 给他的情况下,让他写一个完整的 spring 工程,你看看有多少人会的😄
    有些东西实际上不必纠结,善用就行了
    javaWeber
    javaWeber
    May 13, 2019❤️1
    10
    你照着下面这个搭一遍框架。然后在看看书,就能入门了。
    https://blog.csdn.net/gebitan505/article/details/44455235/
    murmur
    murmur
    May 13, 2019
    11
    @x97bgt 如果你是 spring 的话就去下 springside 项目先做起来再问为什么 这套框架全手动配置会吐血的
    springboot 我认为简单多了
    brust
    brust
    May 13, 2019
    12
    自从用了 springboot 后 spring 我就只能看懂配置了
    qwingmix
    qwingmix
    May 13, 2019❤️1
    13
    尚硅谷有一个视频教程,SSM 高级整合视频。 跟踪做一个件超级简易的人事管理系统, 其实就是一个页面, 有了 CRUD 的功能。 老师讲得很不错,跟着来敲 ,可以把 SSM 的整个东西跑通。
    t2doo
    t2doo
    May 13, 2019
    14
    像 SpringBoot 这种框架,做一个带前台带后台的小型管理网站一般要多久,一个人的话
    qwerthhusn
    qwerthhusn
    May 13, 2019❤️1
    15
    用多了就慢慢理解了(当然前提是用的过程中去多思考,不思考的话,用 100 年也是不懂)。我当初也是直接拿一本 Spring 的书从头看到尾,但是最后发现,不实际应用的话,根本没有啥理解。
    Spring Boot 把所有的细节给隐藏了,如果开始就用 Boot 的话,会让你对 Spring 的核心概念更加不感知,还是开始手动配 XML 或者手动写 @Configuration 好一点
    cllvking
    cllvking
    May 13, 2019
    16
    新建一个项目,然后往里面填东西,一边学一边动手写代码会比较容易入门、有意思并且也有成就感
    Heavytiger
    Heavytiger
    May 13, 2019
    17
    直接上 spring boot。
    x97bgt
    x97bgt
    OP
    May 13, 2019 via iPhone
    18
    @libook #7 确实,说得有理。我觉得因为是 Spring 太大了,然后很多教材都是局限在一个很抽象的点在讲,没有前因后果,所以看起来太晕了。也可能 Spring 本身就是实践为主的,但现在市场上还是缺乏好的教材啊。
    yidinghe
    yidinghe
    PRO
    May 13, 2019
    19
    Spring 的核心是 IoC 容器这自不必说,关于该容器只要掌握两个阶段就可以了,一是初始化阶段,如何扫描 bean 的定义,组装 bean 的实例,以及在这个基础上衍生出来的延迟初始化、自动配置等等;二是执行阶段,如何从 IoC 容器中找到需要的 bean 对象,如何通过代理来拦截调用、实施切面。其余所有的细节都在这两个阶段当中,Spring 整个生态系统的框架都是这两个阶段配合实现的。
    taaaang
    taaaang
    May 13, 2019
    20
    文档最前面就是一个 demo 吧,demo 跑起来就可以开干了
    BCy66drFCvk1Ou87
    BCy66drFCvk1Ou87
    May 13, 2019 via Android
    21
    Spring 这玩意太庞大了……如果不是为了学习而学习去深究它产出不大,可以学它的几个主要的 project:spring boot、spring cloud 和 spring security 等
    lawliet233
    lawliet233
    May 13, 2019 via Android
    22
    先撸代码,在看原理,这样才能通透
    2kCS5c0b0ITXE5k2
    2kCS5c0b0ITXE5k2
    May 13, 2019
    23
    先跟着网上视频写项目啊... 写完一章再回来看原理
    aa6563679
    aa6563679
    May 13, 2019 via iPhone
    24
    dao 持久化这些都是属于工具类了,不是必须要用的。
    txtxdog
    txtxdog
    May 13, 2019 via Android
    25
    推荐自上而下,从 spring boot 开始
    cway
    cway
    May 13, 2019
    26
    ctrl+c
    ctrl+v
    即可
    razertory
    razertory
    May 13, 2019
    27
    说实在的,出现这个玩意儿就是因为 「 Java 没有考虑到如何降低大型工程的复杂度」它的核心功能就是 「 Java 语言的布丁」。已放弃,转 Go 和 Scala
    aidoudou
    aidoudou
    May 13, 2019
    28
    多用就好了,,现在就是个全家桶,用到啥研究啥就好了
    xiaowei0823
    xiaowei0823
    May 13, 2019 via iPhone
    29
    虽然用了一年的 Spring boot,但是你要问我什么是切面什么是 DAO 我也说不清楚 @_@
    Laodaige
    Laodaige
    May 13, 2019
    30
    impl
    impl
    May 13, 2019 via Android
    31
    学不动,从入门到放弃,建议直接放弃
    yclooer
    yclooer
    May 13, 2019 via Android
    32
    能用 spring 全家桶实现一个需求就算是入门了
    orm
    orm
    May 13, 2019 via iPhone
    33
    学 vert.x 吧
    DRcoding
    DRcoding
    May 13, 2019
    34
    自从用了封装的更加的更加严实的 spring boot,虽然相当方便,但是更加感觉到自己只是用一用"工具"的码农了。。。
    PDX
    PDX
    May 13, 2019 via iPhone
    35
    学 vertx 吧,特别妙
    x97bgt
    x97bgt
    OP
    May 13, 2019 via iPhone
    36
    @PDX #35 @orm #33 公司项目用的 Spring,没办法必须学
    x97bgt
    x97bgt
    OP
    May 13, 2019 via iPhone
    37
    @Laodaige #30 怎么 page not found
    lijbgo
    lijbgo
    May 13, 2019
    38
    #37 这种情况,先去掉后面项目,进入个人主页,你就会发现
    micean
    micean
    May 14, 2019
    39
    前段时间用 spring 配了个 OAuth2,想加点需求,然后看源码看懵了……
    最后自己看 OAuth2 协议撸个新 Server
    jzmws
    jzmws
    May 14, 2019
    40
    下个 demo 先跑起来 ,然后再去找为什么这样子
    Laodaige
    Laodaige
    May 15, 2019
    41
    jack80342
    jack80342
    May 22, 2019
    42
    这是我翻译的 Spring Boot Reference Guide 2.0.0.RELEASE 的文档,你可以看看😀。https://github.com/jack80342/Spring-Boot-Reference-Guide
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   881 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 20:55 · PVG 04:55 · LAX 12:55 · JFK 15:55
    ♥ Do have faith in what you're doing.