當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot编写HelloWorld-new
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot编写HelloWorld-new
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我們通過剛剛創(chuàng)建的SpringBoot項(xiàng)目,來完成一個(gè)HelloWorld,首先打開我們的項(xiàng)目,我們看一下項(xiàng)目中的pom文件,我們已經(jīng)添加一個(gè)WEB版的坐標(biāo),那么也就意味著,我們?cè)谧鯳EB的常用一些jar包,也都會(huì)注入到我們的項(xiàng)目當(dāng)中,這里包含了SpringMVC的一些jar包,那么也就意味著,其實(shí)在我們的項(xiàng)目當(dāng)中,通過編寫SpringMVC的Controller,去完成一個(gè)HelloWorld的處理,那么接下來我們就來編寫一個(gè)Controller,在這里我來new一個(gè)Class,起個(gè)名我們叫HelloController@Controller
public class HelloWorld {@RequestMapping("/hello")@ResponseBodypublic Map<String, Object> showHelloWorld(){Map<String, Object> map = new HashMap<>();map.put("msg", "HelloWorld");return map;}
}其實(shí)在SpringBoot中去編寫Controller和在SpringMVC中編寫Controller的流程是一樣的,我需要加一個(gè)Annotation,這個(gè)Annotation叫做@Controller,標(biāo)記出它是一個(gè)Controller,然后添加一個(gè)能夠處理用戶請(qǐng)求的方法,由于我們現(xiàn)在并沒有講整合視圖層的技術(shù),所以我現(xiàn)在只能返回一個(gè)JSON格式的數(shù)據(jù),那么在這個(gè)方法當(dāng)中我讓他返回一個(gè)Map,方法名叫showHelloWorld,在這個(gè)方法當(dāng)中呢,我們先來創(chuàng)建一個(gè)Map,我們要把方法和URL綁定,我們同樣用到RequestMapping,然后在這里添加URI,由于我們的返回要做JSON處理,所以我們還要使用ResponseBody的Annotation,我們知道ResponseBody在做JSON轉(zhuǎn)換的時(shí)候,需要依賴于Jackson的jar包,那么我們WEB啟動(dòng)器當(dāng)中,有沒有將Jackson注入進(jìn)來呢,我們打開MavenDependecies看一下,其實(shí)jackson的jar包已經(jīng)注入進(jìn)來了,所以這一塊是沒有問題的,我們的返回Helloworld的Controller就已經(jīng)編寫完畢了,第二步啟動(dòng)SpringBoot,那么我們?nèi)绾螁?dòng)SpringBoot呢,這里我們需要編寫一個(gè)啟動(dòng)類,其實(shí)啟動(dòng)類的名字你叫什么都可以,然后啟動(dòng)類當(dāng)中要包含一個(gè)main方法@SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}我們需要在啟動(dòng)類上加一個(gè)Annotation,這個(gè)Annotation叫什么呢,叫@SpringBootApplication,這個(gè)Annotation的作用呢,對(duì)啟動(dòng)類的一個(gè)標(biāo)記處理,只要在某個(gè)類上添加這個(gè)標(biāo)記,那么也就意味著,這個(gè)類就是SpringBoot的啟動(dòng)類,然后我們要在啟動(dòng)類上添加一個(gè)main方法,在執(zhí)行方法當(dāng)中,我們調(diào)用Springboot中提供的一個(gè)靜態(tài)方法,這個(gè)靜態(tài)方法就是Springboot在啟動(dòng)時(shí),需要調(diào)用的初始方法,這個(gè)方法位于哪兒呢,位于SpringApplication類當(dāng)中,有一個(gè)run,這個(gè)run方法需要兩個(gè)參數(shù),第一個(gè)參數(shù)需要的是你當(dāng)前啟動(dòng)類的class模板,模板對(duì)象,App.class,第二個(gè)參數(shù)就是main方法傳過來的入?yún)?這樣我們就將一個(gè)啟動(dòng)器,這個(gè)時(shí)候我們可以看到SpringBoot啟動(dòng)時(shí)的一些輸出信息,這個(gè)時(shí)候沒有 異常出現(xiàn),說明SpringBoot是啟動(dòng)成功的,我們能不能訪問Controller得到結(jié)果呢,我們?cè)跒g覽器輸入localhost:8080/hello我們是將這個(gè)地址做了一個(gè)綁定{msg: "HelloWorld"
}這個(gè)時(shí)候我們可以看到,顯示出來了,map的JSON轉(zhuǎn)換,說明我們的HelloWorld是成功的,我們?cè)賮砜匆豢吹谌齻€(gè)問題,關(guān)于編寫啟動(dòng)器需要注意的問題,其實(shí)編寫啟動(dòng)器還是比較簡單的,但是這里有一個(gè)小的細(xì)節(jié)需要我們注意,就是啟動(dòng)器所出現(xiàn)的位置,需要我們注意,什么意思呢,大家可以看到我這個(gè)啟動(dòng)器,放到了Controller上一級(jí)的包中,如果我們把啟動(dòng)器放到Controller包當(dāng)中,讓他和Controller位于同一個(gè)包下,是不是可以呢,啟動(dòng)沒有異常出現(xiàn),是可以的,也就是啟動(dòng)器和Controller位于同一個(gè)包下,是沒問題的,如果我現(xiàn)在再建一個(gè)包,這個(gè)包和controller位于同一個(gè)包下,位于同級(jí)別的,我把App拿過去,這個(gè)時(shí)候我再啟動(dòng),啟動(dòng)沒有問題,但是這個(gè)時(shí)候看到了一個(gè)錯(cuò)誤頁面,這是什么問題引起的呢,這個(gè)其實(shí)是我們啟動(dòng)器在啟動(dòng)時(shí),它是從當(dāng)前包下,查找我們所使用的一些組件,那么也就意味著,現(xiàn)在你的啟動(dòng)器和Controller處于一個(gè)平行的結(jié)構(gòu),所以我們的啟動(dòng)器在啟動(dòng)時(shí),無法找到我們的Controller組件,所以這塊是需要我們注意的第一個(gè)地方,啟動(dòng)器存放的位置,啟動(dòng)器可以和Controller放在同一個(gè)包下,或者位于Controller的上級(jí)包,但是不能放到Controller的平級(jí)以及子包下,這個(gè)是我們需要注意的一點(diǎn)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.learn</groupId><artifactId>01-spring-boot-hello</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.12.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><!-- springBoot的啟動(dòng)器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>
</project>
package com.learn.controller;import java.util.HashMap;
import java.util.Map;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class HelloWorld {@RequestMapping("/hello")@ResponseBodypublic Map<String, Object> showHelloWorld(){Map<String, Object> map = new HashMap<>();map.put("msg", "HelloWorld");return map;}
}
package com.learn;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** SpringBoot 啟動(dòng)類* @author Leon.Sun**/
@SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}
?
總結(jié)
以上是生活随笔為你收集整理的SpringBoot编写HelloWorld-new的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot创建SpringBo
- 下一篇: Spring Boot整合Spring