SpringBoot|第一章:第一個(gè)SpringBoot 應(yīng)用

springboot簡單介紹

概述

隨著動(dòng)態(tài)語言的流行(Ruby、Groovy、Scala、Node.js),Java的開發(fā)顯得格外的笨重:繁多的配置、低下的開發(fā)效率、復(fù)雜的部署流程以及第三方技術(shù)集成難度大。

在上述環(huán)境下,Springboot應(yīng)運(yùn)而生。它使用”習(xí)慣優(yōu)于配置”(項(xiàng)目中存在大量的配置,此外還內(nèi)置一個(gè)習(xí)慣性的配置,讓你無須手動(dòng)進(jìn)行配置)的理念讓你的項(xiàng)目快速運(yùn)行起來。使用springboot很容易創(chuàng)建一個(gè)獨(dú)立運(yùn)行(運(yùn)行jar,內(nèi)嵌servlet容器)、準(zhǔn)生產(chǎn)級(jí)別的基于Spring框架的項(xiàng)目,使用springboot你可以不用或者只需要很少的Spring配置。

Spring Boot 的核心功能

獨(dú)立運(yùn)行的Spring項(xiàng)目

Spring Boot可以以jar包的形式獨(dú)立運(yùn)行,運(yùn)行一個(gè)Spring Boot項(xiàng)目只需要通過java -jar xx.jar。

內(nèi)置Servlet容器

Spring Boot可選擇內(nèi)嵌Tomcat、Jetty或者Undertow,這樣無須以war包形式部署。

提供starter簡化maven配置

Spring提供了一系列的starter pom來簡化maven依賴加載,例如:當(dāng)你使用了spring-boot-starter-web時(shí),會(huì)自動(dòng)加入相關(guān)依賴,無需你手動(dòng)一個(gè)一個(gè)的添加坐標(biāo)依賴。

自動(dòng)配置Spring

Spring Boot會(huì)根據(jù)在類路徑中的jar包、類,為jar包里的類自動(dòng)配置Bean,這樣會(huì)極大地減少我們要使用的配置。當(dāng)然,Spring Boot只是考慮了大多數(shù)的開發(fā)場景,并不是所有場景,若在實(shí)際開發(fā)中,我們需要自動(dòng)配置bean,而Spring Boot沒有提供支持,則可以自定義自動(dòng)配置。

無代碼生成和xml配置

Spring Boot的神奇的不是借助于代碼生成來實(shí)現(xiàn)的,而是通過條件注解來實(shí)現(xiàn)的,這是Spring 4.x提供的新特性,Spring 4.x提倡使用java配置和注解配置相結(jié)合,而Spring Boot不需要任何xml配置即可實(shí)現(xiàn)Sping Boot的所有配置。

優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

快速構(gòu)建項(xiàng)目:省略了繁瑣且重復(fù)的xml配置,分分鐘構(gòu)建一個(gè)web工程;

對(duì)主流開發(fā)框架的無配置集成:提供了很多Starter 依賴包,開箱即用,無需多余配置;

項(xiàng)目可獨(dú)立運(yùn)行:無需外部依賴Servlet容器;

極大地提供了開發(fā)、部署效率;

監(jiān)控簡單:提供了actuator包,可以使用它來對(duì)你的應(yīng)用進(jìn)行監(jiān)控。

缺點(diǎn)

依賴太多:一個(gè)簡單的SpringBoot應(yīng)用都有好幾十M只有;

缺少監(jiān)控集成方案、安全管理方案:只提供基礎(chǔ)監(jiān)控,要實(shí)現(xiàn)生產(chǎn)級(jí)別的監(jiān)控,監(jiān)控方案需要自己動(dòng)手解決;(后期講解soringCloud時(shí),會(huì)結(jié)合pinpoint和skywalking分布式鏈路工具進(jìn)行應(yīng)用監(jiān)控)

工程搭建

使用的工具為:Spring Tool Suite(3.9.3.RELEASE) SpringBoot:1.5.14.RELEASE

Spring Tool Suite 下載地址:https://spring.io/tools/sts/all

創(chuàng)建項(xiàng)目

利用**Spring Initializr**進(jìn)行快速創(chuàng)建項(xiàng)目

選擇Dashboard–>CREATE SPRING STARTER PROJECT進(jìn)行創(chuàng)建項(xiàng)目,或者可以選擇file–>new–>Spring Starter Project,打開創(chuàng)建面板

第一種方式:

第二種方式:

出現(xiàn)創(chuàng)建面板,填寫項(xiàng)目信息

這里url建議直接填寫:https://start.spring.io(默認(rèn)是http方式)

maven相關(guān)命名說明

Group:一般為逆向域名格式,如本博客域名為lqdev.cn,則group一般以cn.lqdev開頭

Artifact:唯一標(biāo)識(shí),一般為項(xiàng)目名稱。 具體maven相關(guān)信息,可自行搜索,這里只簡單闡述

選擇依賴包和版本

除此下載包時(shí),可能會(huì)比較慢,建議替換成阿里云的maven鏡像

項(xiàng)目結(jié)構(gòu)

- src

-main

-java

-cn.lqdev.learning.springboot.chapter1

#主函數(shù),啟動(dòng)類,運(yùn)行它如果運(yùn)行了 Tomcat、Jetty、Undertow 等容器

-Chapter1Application

-resouces

#存放靜態(tài)資源 js/css/images 等

- statics

#存放 html 模板文件

- templates

#主要的配置文件,SpringBoot啟動(dòng)時(shí)候會(huì)自動(dòng)加載application.properties/bootstrap.properties

- application.properties

#測試文件存放目錄

-test

# pom.xml 文件是Maven構(gòu)建的基礎(chǔ),里面包含了我們所依賴JAR和Plugin的信息

- pom

pom依賴

由于使用了Spring Initializr直接創(chuàng)建項(xiàng)目,相關(guān)依賴自動(dòng)添加好了。


xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

cn.lqdev.learning

springboot-chapter1

0.0.1-SNAPSHOT

jar

chapter-1

Spring Boot | 第一章:第一個(gè)Springboot應(yīng)用


org.springframework.boot

spring-boot-starter-parent

1.5.14.RELEASE

UTF-8

UTF-8

1.8


org.springframework.boot

spring-boot-starter-web


org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-maven-plugin

主入口

/**

* 啟動(dòng)類

* @author oKong

*

*/

@SpringBootApplication

public?class?Chapter1Application {

public?static?void?main(String[] args) {

SpringApplication.run(Chapter1Application.class, args);

}

}

編寫controller

/**

* 第一個(gè)springboot應(yīng)用

* @author oKong

*

*/

//@RestController = @Controller + @ResponseBody 默認(rèn)直接返回json

@RestController

public?class?DemoController {

@RequestMapping(value = "/demo", method = RequestMethod.GET)

public?String demo() {

return?"hello,SpringBoot!";

}

}

啟動(dòng)應(yīng)用

直接Chapter1Application,右鍵 run as –> Spring Boot App 即可。

看見以下提示,說明啟動(dòng)成功:

1

2018-07-11 22:47:38.170 INFO 15396 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)

簡單說明

springboot 默認(rèn)的端口號(hào)為:8080,此時(shí)瀏覽器訪問:127.0.0.1:8080/demo即可查看。

需要修改默認(rèn)端口號(hào)時(shí)及上下文路徑時(shí),只需要在application.properties設(shè)置以下屬性:

# 端口號(hào)

server.port=8888

# 應(yīng)用上下文路徑

server.context-path=/chapter1

訪問:http://127.0.0.1:8888/chapter1/demo

自此,一個(gè)簡單的SpringBoot就開發(fā)完成了。比起原來的springmvc時(shí)的開發(fā)效率,簡直是一個(gè)質(zhì)的飛躍,無需再煩擾煩人的xml配置文件了。終于可以快樂的擼代碼了~

總結(jié)

目前互聯(lián)網(wǎng)上很多大佬都有springboot系列教程,如有雷同,請(qǐng)多多包涵了。

如果你現(xiàn)在在JAVA這條路上掙扎,也想在IT行業(yè)拿高薪,可以參加我們的訓(xùn)練營課程,選擇最適合自己的課程學(xué)習(xí),技術(shù)大牛親授,7個(gè)月后,進(jìn)入名企拿高薪。我們的課程內(nèi)容有:Java工程化、高性能及分布式、高性能、深入淺出。高架構(gòu)。性能調(diào)優(yōu)、Spring,MyBatis,Netty源碼分析和大數(shù)據(jù)等多個(gè)知識(shí)點(diǎn)。如果你想拿高薪的,想學(xué)習(xí)的,想就業(yè)前景好的,想跟別人競爭能取得優(yōu)勢的,想進(jìn)阿里面試但擔(dān)心面試不過的,你都可以來,q群號(hào)為:835638062

注:加群要求

1、具有1-5工作經(jīng)驗(yàn)的,面對(duì)目前流行的技術(shù)不知從何下手,需要突破技術(shù)瓶頸的可以加。

2、在公司待久了,過得很安逸,但跳槽時(shí)面試碰壁。需要在短時(shí)間內(nèi)進(jìn)修、跳槽拿高薪的可以加。

3、如果沒有工作經(jīng)驗(yàn),但基礎(chǔ)非常扎實(shí),對(duì)java工作機(jī)制,常用設(shè)計(jì)思想,常用java開發(fā)框架掌握熟練的,可以加。

4、覺得自己很牛B,一般需求都能搞定。但是所學(xué)的知識(shí)點(diǎn)沒有系統(tǒng)化,很難在技術(shù)領(lǐng)域繼續(xù)突破的可以加。

5.阿里Java高級(jí)大牛直播講解知識(shí)點(diǎn),分享知識(shí),多年工作經(jīng)驗(yàn)的梳理和總結(jié),帶著大家全面、科學(xué)地建立自己的技術(shù)體系和技術(shù)認(rèn)知!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容