天天看點

SpringBoot|第一章:第一個SpringBoot 應用

springboot簡單介紹

概述

随着動态語言的流行(Ruby、Groovy、Scala、Node.js),Java的開發顯得格外的笨重:繁多的配置、低下的開發效率、複雜的部署流程以及第三方技術內建難度大。

在上述環境下,Springboot應運而生。它使用”習慣優于配置”(項目中存在大量的配置,此外還内置一個習慣性的配置,讓你無須手動進行配置)的理念讓你的項目快速運作起來。使用springboot很容易建立一個獨立運作(運作jar,内嵌servlet容器)、準生産級别的基于Spring架構的項目,使用springboot你可以不用或者隻需要很少的Spring配置。

Spring Boot 的核心功能

獨立運作的Spring項目

Spring Boot可以以jar包的形式獨立運作,運作一個Spring Boot項目隻需要通過java -jar xx.jar。

内置Servlet容器

Spring Boot可選擇内嵌Tomcat、Jetty或者Undertow,這樣無須以war包形式部署。

提供starter簡化maven配置

Spring提供了一系列的starter pom來簡化maven依賴加載,例如:當你使用了spring-boot-starter-web時,會自動加入相關依賴,無需你手動一個一個的添加坐标依賴。

自動配置Spring

Spring Boot會根據在類路徑中的jar包、類,為jar包裡的類自動配置Bean,這樣會極大地減少我們要使用的配置。當然,Spring Boot隻是考慮了大多數的開發場景,并不是所有場景,若在實際開發中,我們需要自動配置bean,而Spring Boot沒有提供支援,則可以自定義自動配置。

無代碼生成和xml配置

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

優缺點

優點

快速建構項目:省略了繁瑣且重複的xml配置,分分鐘建構一個web工程;

對主流開發架構的無配置內建:提供了很多Starter 依賴包,開箱即用,無需多餘配置;

項目可獨立運作:無需外部依賴Servlet容器;

極大地提供了開發、部署效率;

監控簡單:提供了actuator包,可以使用它來對你的應用進行監控。

缺點

依賴太多:一個簡單的SpringBoot應用都有好幾十M隻有;

缺少監控內建方案、安全管理方案:隻提供基礎監控,要實作生産級别的監控,監控方案需要自己動手解決;(後期講解soringCloud時,會結合pinpoint和skywalking分布式鍊路工具進行應用監控)

工程搭建

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

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

建立項目

利用**Spring Initializr**進行快速建立項目

選擇Dashboard–>CREATE SPRING STARTER PROJECT進行建立項目,或者可以選擇file–>new–>Spring Starter Project,打開建立面闆

第一種方式:

SpringBoot|第一章:第一個SpringBoot 應用

第二種方式:

SpringBoot|第一章:第一個SpringBoot 應用

出現建立面闆,填寫項目資訊

這裡url建議直接填寫:https://start.spring.io(預設是http方式)

SpringBoot|第一章:第一個SpringBoot 應用

maven相關命名說明

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

Artifact:唯一辨別,一般為項目名稱。 具體maven相關資訊,可自行搜尋,這裡隻簡單闡述

選擇依賴包和版本

SpringBoot|第一章:第一個SpringBoot 應用

除此下載下傳包時,可能會比較慢,建議替換成阿裡雲的maven鏡像

項目結構

- src

-main

-java

-cn.lqdev.learning.springboot.chapter1

#主函數,啟動類,運作它如果運作了 Tomcat、Jetty、Undertow 等容器

-Chapter1Application

-resouces

#存放靜态資源 js/css/images 等

- statics

#存放 html 模闆檔案

- templates

#主要的配置檔案,SpringBoot啟動時候會自動加載application.properties/bootstrap.properties

- application.properties

#測試檔案存放目錄

-test

# pom.xml 檔案是Maven建構的基礎,裡面包含了我們所依賴JAR和Plugin的資訊

- pom

SpringBoot|第一章:第一個SpringBoot 應用

pom依賴

由于使用了Spring Initializr直接建立項目,相關依賴自動添加好了。

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 | 第一章:第一個Springboot應用

org.springframework.boot

spring-boot-starter-parent

1.5.14.RELEASE

UTF-8

1.8

spring-boot-starter-web

spring-boot-starter-test

test

spring-boot-maven-plugin

主入口

/**

* 啟動類

* @author oKong

*

*/

@SpringBootApplication

public class

 Chapter1Application {

static void

 main(String[] args) {

SpringApplication.run(Chapter1Application.

, args);

}

編寫controller

* 第一個springboot應用

//@RestController = @Controller + @ResponseBody 預設直接傳回json

@RestController

 DemoController {

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

 String demo() {

return

 "hello,SpringBoot!";

啟動應用

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

看見以下提示,說明啟動成功:

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 預設的端口号為:8080,此時浏覽器通路:127.0.0.1:8080/demo即可檢視。

需要修改預設端口号時及上下文路徑時,隻需要在application.properties設定以下屬性:

# 端口号

server.port=8888

# 應用上下文路徑

server.context-path=/chapter1

通路:http://127.0.0.1:8888/chapter1/demo

SpringBoot|第一章:第一個SpringBoot 應用

自此,一個簡單的SpringBoot就開發完成了。比起原來的springmvc時的開發效率,簡直是一個質的飛躍,無需再煩擾煩人的xml配置檔案了。終于可以快樂的撸代碼了~

總結

目前網際網路上很多大佬都有springboot系列教程,如有雷同,請多多包涵了。

如果你現在在JAVA這條路上掙紮,也想在IT行業拿高薪,可以參加我們的訓練營課程,選擇最适合自己的課程學習,技術大牛親授,7個月後,進入名企拿高薪。我們的課程内容有:Java工程化、高性能及分布式、高性能、深入淺出。高架構。性能調優、Spring,MyBatis,Netty源碼分析和大資料等多個知識點。如果你想拿高薪的,想學習的,想就業前景好的,想跟别人競争能取得優勢的,想進阿裡面試但擔心面試不過的,你都可以來,q群号為:835638062

注:加群要求

1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加。

2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間内進修、跳槽拿高薪的可以加。

3、如果沒有工作經驗,但基礎非常紮實,對java工作機制,常用設計思想,常用java開發架構掌握熟練的,可以加。

4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加。

5.阿裡Java進階大牛直播講解知識點,分享知識,多年工作經驗的梳理和總結,帶着大家全面、科學地建立自己的技術體系和技術認知!