記錄工做學習點點滴滴,但願對你們有幫助java
以前使用windows的idea環境自動搭建springboot並無出現問題,因此以爲很簡單,轉移的mac ox平臺想着本身也搭建一下springboot的微服務,忽然發現訪問不到了,非常難受,也在百度中搜尋了好久,基本文章都是同樣的,因此特地打算寫一篇文章,總結一下各種問題。web
jdk 1.8spring
IntelliJ IDEA 2017.2.5windows
環境搭建的方式就很少介紹了,原諒我tomcat
這裏簡單介紹一下idea 的目錄結構,好多狀況下,剛剛從eclipse中轉過來的朋友們老是被idea的目錄結構搞的很難受,有的時候想要像eclipse那樣建立一個workspace,在裏面建立一些工程,那麼在idea中咱們怎麼作呢?springboot
首先咱們要知道,在idea中的一個project就至關因而eclipse中的一個workspace,而每個module就好像是一個project,因此咱們採用以下方式建立springboot工程。app
建立一個空的project 。 File->New->Project->左側最下面的Empty Project->接着選擇目錄存儲位置和project的名字就能夠了。eclipse
在建立好的空的project中建立新的module。File->New->Module->Spring Initializr->採用默認配置 直接next->繼續採用默認next->接着將web項打勾->接着就是給springboot項目起名字,並設置該項目的存放位置,路徑要放在空的project下。ide
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.
固然結果可能會是以下信息:
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的頁面,須要進行配置。
固然咱們的目的並非訪問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。