Spring Boot 之HelloWorld開(kāi)發(fā)案例
1.開(kāi)發(fā)工具安裝
在Eclipse上安裝插件:spring Tool Suite(簡(jiǎn)稱(chēng)STS)
2.開(kāi)發(fā)實(shí)例
1).創(chuàng)建項(xiàng)目
File > New > Spring Starter Project
項(xiàng)目創(chuàng)建完成:
2).生成的源碼解讀
SpringBootSimpleApplication類(lèi):
package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootSimpleApplication { public static void main(String[] args) { SpringApplication.run(SpringBootSimpleApplication.class, args); } }
pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <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.example</groupId> <artifactId>Spring-boot-simple</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>Spring-boot-simple</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
3).自定義Controller層
創(chuàng)建HelloWorldController.java類(lèi):
package com.example.controller; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/hello") public class HelloWorldController { @RequestMapping public String hello() { return "Hello Spring-Boot"; } @RequestMapping("/info") public Map<String, String> getInfo(@RequestParam String name) { Map<String, String> map = new HashMap<String,String>(); map.put("name", name); return map; } @RequestMapping("/list") public List<Map<String, String>> getList() { List<Map<String, String>> list = new ArrayList<Map<String, String>>(); Map<String, String> map = null; for (int i = 1; i <= 5; i++) { map = new HashMap<>(); map.put("name-"+i, "spring-boot-"+i); list.add(map); } return list; } }
然后現(xiàn)在可以直接運(yùn)行 SpringBootSampleApplication 的main方法,和執(zhí)行普通java程序一樣。
然后可以看到spring-boot 內(nèi)置server容器(默認(rèn)為T(mén)omcat),這一切spring-boot 都幫我們做好了。
在瀏覽器輸入我們3個(gè)請(qǐng)求便可看到結(jié)果。
輸出:Hello Spring-Boot
http://localhost:8080/hello/info?name=spring-boot
輸出:{“name”:”spring-boot”}
http://localhost:8080/hello/list
輸出:[{“name-1”:”spring-boot-1”},{“name-2”:”spring-boot-2”},{“name-3”:”spring-boot-3”},{“name-4”:”spring-boot-4”},{“name-5”:”spring-boot-5”}]
通過(guò)我們的Hello實(shí)例,相信大家一目了然,可謂spring-boot創(chuàng)建一個(gè)項(xiàng)目如此簡(jiǎn)單,完全可以在幾分鐘內(nèi)將服務(wù)啟動(dòng)。
3.注解說(shuō)明
1).@SpringBootApplication
很多Spring Boot開(kāi)發(fā)者總是使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 注解他們的main類(lèi)。由于這些注解被如此頻繁地一塊使用(特別是你遵循以上最佳實(shí)踐時(shí)),Spring Boot提供一個(gè)方便的 @SpringBootApplication 選擇。
該 @SpringBootApplication 注解等價(jià)于以默認(rèn)屬性使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 。
2).@RestController和@RequestMapping注解
我們的Example類(lèi)上使用的第一個(gè)注解是@RestController。被稱(chēng)為一個(gè)構(gòu)造型(stereotype)注解。它為閱讀代碼的人們提供建議。對(duì)于Spring,該類(lèi)扮演了一個(gè)特殊角色。在本示例中,我們的類(lèi)是一個(gè)web @Controller ,所以當(dāng)處理進(jìn)來(lái)的web請(qǐng)求時(shí),Spring會(huì)詢(xún)問(wèn)它。
@RequestMapping 注解提供路由信息。它告訴Spring任何來(lái)自"/"路徑的HTTP請(qǐng)求都應(yīng)該被映射到 home 方法。
@RestController 注解告訴Spring以字符串的形式渲染結(jié)果,并直接返回給調(diào)用者。
注: @RestController 和 @RequestMapping 注解是Spring MVC注解(它們不是Spring Boot的特定部分)
以上所述是小編給大家介紹的Spring Boot 之HelloWorld開(kāi)發(fā)案例,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Spring解讀@Component和@Configuration的區(qū)別以及源碼分析
通過(guò)實(shí)例分析@Component和@Configuration注解的區(qū)別,核心在于@Configuration會(huì)通過(guò)CGLIB代理確保Bean的單例,而@Component不會(huì),在Spring容器中,使用@Configuration注解的類(lèi)會(huì)被CGLIB增強(qiáng),保證了即使在同一個(gè)類(lèi)中多次調(diào)用@Bean方法2024-10-10Eclipse+Java+Swing實(shí)現(xiàn)斗地主游戲(代碼)
這篇文章主要介紹了Eclipse+Java+Swing實(shí)現(xiàn)斗地主游戲并附上詳細(xì)的代碼實(shí)現(xiàn),正在學(xué)習(xí)的你可以當(dāng)小練習(xí)練練,希望對(duì)你有所幫助2022-01-01java開(kāi)發(fā)主流定時(shí)任務(wù)解決方案全橫評(píng)詳解
這篇文章主要為大家介紹了java開(kāi)發(fā)主流定時(shí)任務(wù)解決方案全橫評(píng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09關(guān)于Spring注解@Async引發(fā)其他注解失效的解決
這篇文章主要介紹了關(guān)于Spring注解@Async引發(fā)其他注解失效的解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Jvisualvm監(jiān)控遠(yuǎn)程SpringBoot項(xiàng)目的過(guò)程詳解
這篇文章主要介紹了Jvisualvm監(jiān)控遠(yuǎn)程SpringBoot項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04學(xué)習(xí)Java之二叉樹(shù)的編碼實(shí)現(xiàn)過(guò)程詳解
本文將通過(guò)代碼來(lái)進(jìn)行二叉樹(shù)的編碼實(shí)現(xiàn),文中的代碼示例介紹的非常詳細(xì),對(duì)我們學(xué)習(xí)Java二叉樹(shù)有一定的幫助,感興趣的同學(xué)跟著小編一起來(lái)看看吧2023-08-08spring導(dǎo)入framework報(bào)紅問(wèn)題
這篇文章主要介紹了spring導(dǎo)入framework報(bào)紅問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07SpringBoot Admin升級(jí)boot等組件版本后無(wú)法監(jiān)控微服務(wù)問(wèn)題
這篇文章主要介紹了SpringBoot Admin升級(jí)boot等組件版本后無(wú)法監(jiān)控微服務(wù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08