Mac ox 下使用idea搭建springboot入门程序,启动成功,访问404错误!

记录工作学习点点滴滴,希望对大家有帮助

问题描述

之前使用windows的idea环境自动搭建springboot并没有出现问题,所以觉得很简单,转移的mac ox平台想着自己也搭建一下springboot的微服务,突然发现访问不到了,很是难受,也在百度中搜寻了很久,基本文章都是一样的,所以特意打算写一篇文章,总结一下各类问题。

1. 环境搭建

  • jdk 1.8

  • IntelliJ IDEA 2017.2.5

环境搭建的方式就不多介绍了,原谅我

2. SpringBoot快速搭建

  • 这里简单介绍一下idea 的目录结构,好多情况下,刚刚从eclipse中转过来的朋友们总是被idea的目录结构搞的很难受,有的时候想要像eclipse那样创建一个workspace,在里面创建一些工程,那么在idea中我们怎么做呢?

首先我们要知道,在idea中的一个project就相当于是eclipse中的一个workspace,而每一个module就好像是一个project,所以我们采用如下方式创建springboot工程。

  1. 创建一个空的project 。 File->New->Project->左侧最下面的Empty Project->接着选择目录存储位置和project的名字就可以了。

  2. 在创建好的空的project中创建新的module。File->New->Module->Spring Initializr->采用默认配置 直接next->继续采用默认next->接着将web项打勾->接着就是给springboot项目起名字,并设置该项目的存放位置,路径要放在空的project下。

ok!其实到目前为止,正常情况下我们入门springboot已经搭建好了,只需执行springboot 的入口就可以。

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

控制台输出如下则证明启动成功:

2017-11-09 14:58:47.432  INFO 10039 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-11-09 14:58:47.437  INFO 10039 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 1.978 seconds (JVM running for 2.542)

这个表示springboot内置的tomcat已经启动成功,并且端口在8080,这个时候可能有同学已经按耐不住,就会去访问:http://localhost:8080.

3.问题分析-localhost:8080的404错误

当然结果可能会是如下信息:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Thu Nov 09 16:09:12 CST 2017
There was an unexpected error (type=Not Found, status=404).
No message available   

当时我也被这个问题困扰了好久, 看到了一篇文章专门介绍这个,大概意思是再说我们的tomcat启动了,但是并不存在tomcat的主页面,所以要想在springboot启动的tomcat中看到tomcat的页面,需要进行配置。

3.问题分析-localhost:8080/hello的404错误

当然我们的目的并不是访问tomcat的主页,接着我们编写一个controller来访问一下。

  • 注意这里在创建controller的时候要注意一下规则,我们的controller要位于程序main 方法的包或其子包下,不然springboot是扫描不到我们的controller的。

例如:

  • com.example.demo.Application.java

  • com.example.demo.controller.HelloController.java

  • ...

使用类似上面的包结构。
Controller代码如下:

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String helloTest(){
        return "Hello World!";
    }
}    

重新运行一下程序,网址访问http://localhost:8080/hello 后就会看到Hello World!信息了。


有人说404问题呢?如果你不小心把类上面的@RestController写成了@Controller,那么你再去访问,结果就是404没跑了。

  • @RestControllera :convenience annotation that does nothing more than adding the@Controller and @ResponseBody annotations。 @RestController是@Controller和@ResponseBody的结合体,两个标注合并起来的作

  • @Controller: 标识一个Spring类是Spring MVC controller处理器

  • 共同点:都来表示Spring某个类的是否可以接收HTTP请求

最后的我的解决方案就是:

将Controller类上面的注解@Controller改写成@RestController。

你可能感兴趣的:(Mac ox 下使用idea搭建springboot入门程序,启动成功,访问404错误!)