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

Spring boot 出师未捷之卡在第一步

  •  
  •   KunMinX · 2020-03-20 13:16:48 +08:00 · 5384 次点击
    这是一个创建于 1710 天前的主题,其中的信息可能已经有所发展或是发生改变。

    客户端开发,后端新手,

    跟着博客学习 Spring boot 时,卡在 hello world:

    http://www.ityouknow.com/springboot/2016/01/06/spring-boot-quick-start.html

    我在新建的项目中加了个 controller,并添加一个方法返回 restful “hello world”, 项目成功启动,没有报错,但浏览器访问 localhost:8080/hello 却无法访问,

    问题大概会是发生在哪个环节呢?我该怎么找到线索呢?难受,看看万能的 v 友有没好招

    WX20200320-131413@2x.png WX20200320-131423@2x.png WX20200320-131432@2x.png WX20200320-131458@2x.png

    第 1 条附言  ·  2020-03-20 14:47:41 +08:00
    解决了,感谢部分 v 友 理智、友善的发言。

    - - - - -

    作为回馈,分享一下我的解决思路,以方便后来者:

    最开始,我了解了后端的发展史,

    知道后端最开始是提供 网页内容服务,包括静态和动态内容,

    静态的如 html、资源等;动态的通过 servlet 来处理业务、返回内容。到此为止成为 JavaWeb。

    但后来随着企业级需求的发展,需要管理数据,而由此延伸了更大的范畴:javaEE,包含对 java Bean、database 等规范。

    从而,现如今如果要为客户端开发一个远程服务,就是基于 javaEE 的开发,

    对于请求响应,底层是 tomcat 这个 web 应用服务器 兼 容器在处理。

    而 Spring 框架是基于 javaEE 的开发,屏蔽了底层关于 请求响应 和 数据操作 的繁琐配置等,让开发者能够专注于 业务逻辑本身的开发。

    spring boot 则是将这个目标发展到极致。

    - - - - - - - -

    所以对于 hello world,上述博客和官网其实没有本质区别,

    博客中交代从 spring boot.io 站下载生成的 maven project,实际上已配置好 spring boot starter web,而后者包含了内嵌的 tomcat,所以问题不在于项目本身,

    网上查询 “spring boot Process finished with exit code 0” 也清一色地声称是 spring boot starter web 没配,这显然不是问题的根结所在。

    于是我试着通过 maven 命令将项目 clean 一遍,再点击 绿色 run 按钮运行,成功了。

    这是个新项目,对 Android Studio 来说,给新项目 clean project 是匪夷所思的,有明白状况的 v 友欢迎分享补充。
    34 条回复    2020-03-22 11:34:25 +08:00
    hdbzsgm
        1
    hdbzsgm  
       2020-03-20 13:20:20 +08:00
    RequestMapping annotation can be used both at the class and at the method level. In most cases, at the method level applications will prefer to use one of the HTTP method specific variants @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, or @PatchMapping.
    Cbdy
        2
    Cbdy  
       2020-03-20 13:24:39 +08:00
    代码没什么问题,启动日志显示启动完就退出了,没有启动 tomcat。
    应该是依赖不对,确认把这个依赖加上

    implementation 'org.springframework.boot:spring-boot-starter-web'
    1KN6sAqR0a57no6s
        3
    1KN6sAqR0a57no6s  
       2020-03-20 13:25:29 +08:00
    你不找个新的教程吗,spring 官网的也好,这篇博客都是四年前的老古董了。
    Nitroethane
        4
    Nitroethane  
       2020-03-20 13:26:53 +08:00
    我之前学习的时候看的这个系列,还不错: http://blog.didispace.com/spring-boot-learning-1x/
    chendy
        5
    chendy  
       2020-03-20 13:29:14 +08:00
    教程有毒,直接 generate 再手加依赖还行,直接加个 spring web 再 generate 啊
    教程里说的 IDEA 导入,maven 创建,然后贴了个 eclipse 的图,佛了
    直接去官网吧: https://spring.io/guides/gs/rest-service/
    HongJay
        6
    HongJay  
       2020-03-20 13:29:45 +08:00
    兄弟。。你是要笑死我了。。
    tianshiyeben
        7
    tianshiyeben  
       2020-03-20 13:29:50 +08:00
    用开源项目学吧,https://github.com/tianshiyeben/wgcloud,这是监控系统,你用 agent 那个工程,server 相对复杂些。
    tianshiyeben
        8
    tianshiyeben  
       2020-03-20 13:30:16 +08:00
    tianshiyeben
        9
    tianshiyeben  
       2020-03-20 13:34:10 +08:00
    算了,你还是用 server 工程吧。agent 有 sigar 包
    w292614191
        10
    w292614191  
       2020-03-20 13:36:30 +08:00
    你这启动都没成功。
    pmispig
        11
    pmispig  
       2020-03-20 13:39:04 +08:00
    没启动成功这个你都不看。。。学啥都难
    KunMinX
        12
    KunMinX  
    OP
       2020-03-20 13:40:50 +08:00
    @Cbdy spring-boot-starter-web 在 pom.xml 中有配的
    WuwuGin
        13
    WuwuGin  
       2020-03-20 13:41:26 +08:00
    springboot 有官方的自动 pom 生成网站啊,看什么二手中文教程。。
    luxinfl
        14
    luxinfl  
       2020-03-20 13:43:33 +08:00
    最后一行字没看到么。。。
    mazyi
        15
    mazyi  
       2020-03-20 13:48:47 +08:00   ❤️ 1
    不要嘲讽楼主了!楼主是转的后端。想必你也知道,后端是一个要一直运行的程序,所以第一步,检查是否启动。
    jjianwen68
        16
    jjianwen68  
       2020-03-20 14:11:12 +08:00
    chocotan
        17
    chocotan  
       2020-03-20 14:17:11 +08:00
    你这个应用启动失败了
    HarryQu
        18
    HarryQu  
       2020-03-20 14:19:57 +08:00   ❤️ 1
    我也是移动端开发,学过一些 Java 后端。

    SpringBoot 的发展比较快,不同版本配置会有不同,最好的方法是跟着官网的 Demo 学习。

    但是可能刚入门,对大部分配置不了解,那最快的上手方法其实就是看视频,先让程序跑起来。再研究每一部分的作用。

    入门你就看慕课网的免费视频或者其他网站的视频,SpringBoot 2.0 版本以上就行。

    后端大部分知识的学习还是需要系统的看书。
    manami
        19
    manami  
       2020-03-20 14:20:21 +08:00   ❤️ 2
    最近有空,准备写个 sping boot 的教程
    AprilNovember
        20
    AprilNovember  
       2020-03-20 14:29:49 +08:00
    Application 启动类放的位置有问题吧,启动不起来
    AmadeusZZZ
        21
    AmadeusZZZ  
       2020-03-20 14:46:02 +08:00
    我很想知道 V2EX 是怎么在主题里面加图片。。。😓
    Tenma
        23
    Tenma  
       2020-03-20 15:53:26 +08:00
    大佬,你要转后台了吗?我看过你部分 Android 文章
    KunMinX
        24
    KunMinX  
    OP
       2020-03-20 16:01:48 +08:00
    @Tenma 我需要涉猎一些后端知识,来弥补知识栈的缺失 …
    StevenTong
        25
    StevenTong  
       2020-03-20 16:40:28 +08:00
    https://github.com/steventong/simple-microservices

    我的新建的新手项目,可以看一下
    hello2060
        26
    hello2060  
       2020-03-20 16:46:29 +08:00 via iPhone
    看到这文章我就知道你是前两天求书籍帖子那个特能说的楼主,一点进去果然是
    aitaii
        27
    aitaii  
       2020-03-20 17:02:41 +08:00   ❤️ 1
    https://spring.io/quickstart 不知道比那些教程高到哪里去了 (狗头
    hellwys1
        28
    hellwys1  
       2020-03-20 17:08:05 +08:00   ❤️ 1
    对 Java 来说,新项目 clean project 也是匪夷所思的。
    我喜欢楼主的头像。
    Yasuki2004
        29
    Yasuki2004  
       2020-03-20 20:25:23 +08:00
    @pmispig 你去掘金能看见楼主的文章哦
    heyjei
        30
    heyjei  
       2020-03-20 21:18:52 +08:00
    你的图截的太小了,看不清你运行的是 application 还是 applicationTests,不过看日志输出,大概率是运行了 applicationTests。这个和需不需要运行 clean 无关。。
    ourslay
        31
    ourslay  
       2020-03-20 21:40:10 +08:00 via iPhone   ❤️ 1
    coer
        32
    coer  
       2020-03-21 02:14:55 +08:00 via Android
    学的差不多了再去 github 找个 springboot-bestpractice 的项目看一下,感觉就可以上手写项目了
    STtree
        33
    STtree  
       2020-03-21 23:39:52 +08:00
    老哥为啥不用 kotlin 写,我觉得 kotlin 那些语法糖还是挺香的
    hhhsuan
        34
    hhhsuan  
       2020-03-22 11:34:25 +08:00
    @coer #32 求推荐
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5781 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 01:50 · PVG 09:50 · LAX 17:50 · JFK 20:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.