日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程

發(fā)布時(shí)間:2025/3/21 javascript 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載請(qǐng)標(biāo)明出處:?
http://blog.csdn.net/forezp/article/details/70341651?
本文出自方志朋的博客

簡(jiǎn)介

spring boot 它的設(shè)計(jì)目的就是為例簡(jiǎn)化開發(fā),開啟了各種自動(dòng)裝配,你不想寫各種配置文件,引入相關(guān)的依賴就能迅速搭建起一個(gè)web工程。它采用的是建立生產(chǎn)就緒的應(yīng)用程序觀點(diǎn),優(yōu)先于配置的慣例。

可能你有很多理由不放棄SSM,SSH,但是當(dāng)你一旦使用了springboot ,你會(huì)覺(jué)得一切變得簡(jiǎn)單了,配置變的簡(jiǎn)單了、編碼變的簡(jiǎn)單了,部署變的簡(jiǎn)單了,感覺(jué)自己健步如飛,開發(fā)速度大大提高了。就好比,當(dāng)你用了IDEA,你會(huì)覺(jué)得再也回不到Eclipse時(shí)代一樣。另,本系列教程全部用的IDEA作為開發(fā)工具。

建構(gòu)工程

你需要:

  • 15分鐘
  • jdk 1.8或以上
  • maven 3.0+
  • Idea

打開Idea-> new Project ->Spring Initializr ->填寫group、artifact ->鉤上web(開啟web功能)->點(diǎn)下一步就行了。

工程目錄

創(chuàng)建完工程,工程的目錄結(jié)構(gòu)如下:

- src-main-java-package-SpringbootApplication-resouces- statics- templates- application.yml-test - pom
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • pom文件為基本的依賴管理文件
  • resouces 資源文件?
    • statics 靜態(tài)資源
    • templates 模板資源
    • application.yml 配置文件
  • SpringbootApplication程序的入口。

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.forezp</groupId><artifactId>springboot-first-application</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>springboot-first-application</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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

其中spring-boot-starter-web不僅包含spring-boot-starter,還自動(dòng)開啟了web功能。

功能演示

說(shuō)了這么多,你可能還體會(huì)不到,舉個(gè)栗子,比如你引入了Thymeleaf的依賴,spring boot 就會(huì)自動(dòng)幫你引入SpringTemplateEngine,當(dāng)你引入了自己的SpringTemplateEngine,spring boot就不會(huì)幫你引入。它讓你專注于你的自己的業(yè)務(wù)開發(fā),而不是各種配置。

再舉個(gè)栗子,建個(gè)controller:

import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping;@RestController public class HelloController {@RequestMapping("/")public String index() {return "Greetings from Spring Boot!";}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

啟動(dòng)SpringbootFirstApplication的main方法,打開瀏覽器localhost:8080,瀏覽器顯示:

Greetings from Spring Boot!

神奇之處:

  • 你沒(méi)有做任何的web.xml配置。
  • 你沒(méi)有做任何的sping mvc的配置; springboot為你做了。
  • 你沒(méi)有配置tomcat ;springboot內(nèi)嵌tomcat.

啟動(dòng)springboot 方式

cd到項(xiàng)目主目錄:

mvn clean mvn package 編譯項(xiàng)目的jar
  • 1
  • 2
  • mvn spring-boot: run 啟動(dòng)
  • cd 到target目錄,java -jar 項(xiàng)目.jar

來(lái)看看springboot在啟動(dòng)的時(shí)候?yàn)槲覀冏⑷肓四男゜ean

在程序入口加入:

@SpringBootApplication public class SpringbootFirstApplication {public static void main(String[] args) {SpringApplication.run(SpringbootFirstApplication.class, args);}@Beanpublic CommandLineRunner commandLineRunner(ApplicationContext ctx) {return args -> {System.out.println("Let's inspect the beans provided by Spring Boot:");String[] beanNames = ctx.getBeanDefinitionNames();Arrays.sort(beanNames);for (String beanName : beanNames) {System.out.println(beanName);}};}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

程序輸出:

Let’s inspect the beans provided by Spring Boot:?
basicErrorController?
beanNameHandlerMapping?
beanNameViewResolver?
characterEncodingFilter?
commandLineRunner?
conventionErrorViewResolver?
defaultServletHandlerMapping?
defaultViewResolver?
dispatcherServlet?
dispatcherServletRegistration?
duplicateServerPropertiesDetector?
embeddedServletContainerCustomizerBeanPostProcessor?
error?
errorAttributes?
errorPageCustomizer?
errorPageRegistrarBeanPostProcessor

….?
….

在程序啟動(dòng)的時(shí)候,springboot自動(dòng)諸如注入了40-50個(gè)bean.

單元測(cè)試

通過(guò)@RunWith() @SpringBootTest開啟注解:

@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class HelloControllerIT {@LocalServerPortprivate int port;private URL base;@Autowiredprivate TestRestTemplate template;@Beforepublic void setUp() throws Exception {this.base = new URL("http://localhost:" + port + "/");}@Testpublic void getHello() throws Exception {ResponseEntity<String> response = template.getForEntity(base.toString(),String.class);assertThat(response.getBody(), equalTo("Greetings from Spring Boot!"));} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

運(yùn)行它會(huì)先開啟sprigboot工程,然后再測(cè)試,測(cè)試通過(guò) ^.^

源碼下載:https://github.com/forezp/SpringBootLearning

結(jié)語(yǔ)

市面上有很多springboot的書,有很多springboot的博客,為什么我還要寫這樣一個(gè)系列?到目前為止,我沒(méi)有看過(guò)一本springboot的書,因?yàn)檫€沒(méi)來(lái)得及看,看的都是官方指南,當(dāng)然也參考了很多的博客,他們都寫的非常的棒!在看官方指南和博客的時(shí)候,發(fā)現(xiàn)他們有很多不同之處,所以我打算寫一個(gè)來(lái)源于官方,通過(guò)自己理解加整合寫一個(gè)系列,所以取名叫《springboot 非官方教程》。我相信我寫的可能跟其他人的寫的會(huì)不太一樣。另外,最主要的原因還是提高自己,懷著一個(gè)樂(lè)于分享的心,將自己的理解分享給更多需要的人。

參考資料

Building an Application with Spring Boot

優(yōu)秀文章推薦:

  • 更多springboot 教程:springBoot非官方教程 | 終章:文章匯總
  • 更多springcoud 教程:史上最簡(jiǎn)單的 SpringCloud 教程 | 終章: 文章匯總

總結(jié)

以上是生活随笔為你收集整理的SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 农民人伦一区二区三区 | 国产精品178页 | 中文永久免费观看 | 日韩123区 | 91精彩视频在线观看 | 久久av无码精品人妻出轨 | 色99色| 91精品婷婷国产综合久久竹菊 | 伊人情人综合 | 成人动漫在线免费观看 | 国产鲁鲁视频在线观看特色 | 国产精品探花视频 | 日韩经典午夜福利发布 | 91香蕉视频污污 | 超碰毛片| 日韩在线视频免费播放 | 国产精品日韩在线观看 | 韩国视频一区二区三区 | 影音先锋啪啪资源 | 欧美三级视频在线 | 国产成人99久久亚洲综合精品 | 亚洲国产av一区 | 伊人影院在线播放 | 我要看免费的毛片 | 国产欧美日韩综合精品 | 国内偷拍精品视频 | 午夜在线你懂的 | 日韩福利视频 | 亚洲欧美第一视频 | 日韩丝袜一区 | 中文字幕被公侵犯的漂亮人妻 | 国产精品一区二区三区四区视频 | 插骚 | 超碰在线免费播放 | 蜜桃免费在线视频 | 女优色图| 亚洲AV午夜精品 | 国产免费无遮挡吸奶头视频 | 一级全黄毛片 | 久久久国产精品 | 我要看免费毛片 | 这里只有精品久久 | 国产精品对白刺激久久久 | 在线a毛片 | 亚洲一二三区在线观看 | 欧色av | 丰满少妇高潮一区二区 | 日韩欧美在线观看一区 | 伊人久久大香线蕉av色婷婷色 | 欧美久久久久久久久久久久 | heyzo朝桐光一区二区 | 亚洲综合另类 | 久久久综合色 | 成人毛片软件 | 欧美日韩国产电影 | 成人免费网站 | 国产农村妇女精品 | 人人妻人人澡人人爽精品 | 久久不卡视频 | 黄色一级一片免费播放 | 国产精品成人3p一区二区三区 | 色欲AV无码精品一区二区久久 | 骚鸭av| 超碰在线91 | 中文字幕在线播放 | 国产麻豆成人传媒免费观看 | 中文字幕在线观看线人 | 国产精品久久久久久久久久久久久久久久 | 亚洲爆乳无码精品aaa片蜜桃 | 秋霞毛片少妇激情免费 | 伊人网综合在线 | 国产伦精品一区二区三区高清 | 老司机午夜剧场 | 亚洲国产视频在线 | 青青草视频免费播放 | 久久午夜影视 | 欧美午夜精品久久久 | 亚洲精品国产99 | 日韩女女同性aa女同 | 神马老子午夜 | 日韩大尺度视频 | www.成人免费 | 亚洲精品一区二区二区 | 丁香婷婷六月天 | 91爱爱网站 | 久草资源福利 | 亚洲少妇网站 | 亚洲高清免费 | 妺妺窝人体色www在线小说 | 欧美一级黄色大片 | 大陆av在线播放 | 经典杯子蛋糕日剧在线观看免费 | 综合网五月天 | 婷婷色伊人 | 久久精品人妻一区二区三区 | 性欧美大战久久久久久久 | 在线观看羞羞漫画 | 精品国产av无码一区二区三区 | 男人操女人的软件 |