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

歡迎訪問 生活随笔!

生活随笔

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

javascript

springboot 历史版本文档_乘风破浪,SpringBoot入门

發(fā)布時間:2023/12/4 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot 历史版本文档_乘风破浪,SpringBoot入门 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SpringBoot入門篇

前言

在普通的java項目中,大量的xml文件配置起來相當(dāng)繁瑣,導(dǎo)致了開發(fā)效率非常低下,整合第三方框架的配置可能會存在沖突問題導(dǎo)致部署效率低,打包方式是將項目打成一個war包放入到tomactwebapps目錄下執(zhí)行。簡單來說,傳統(tǒng)的開發(fā)方式有以下令人苦惱的的特點

  • 笨重的開發(fā)
  • 繁瑣的配置
  • 低下的開發(fā)效率
  • 復(fù)雜的部署流程
  • 集成第三方難度大

為了解決以上問題,SpringBoot被提出來了,它設(shè)計的目的就是為了簡化Spring應(yīng)用的初始搭建及開發(fā)過程,其約定大于配置,去繁從簡。

看到這里,你覺得我是在吹牛逼,SpringBoot真的有那么優(yōu)秀么?如果,你還是不信,咱們?nèi)ス倬W(wǎng)的開發(fā)文檔瞅一瞅,

打開SpringBoot官網(wǎng),打開文檔,讓我們一探究竟。

文檔里有這樣一段話介紹SpringBoot框架的特點

因為全是英文,我直接精煉下給你看,SpringBoot的優(yōu)點總結(jié)如下:

  • 快速整合第三方框架(Maven依賴關(guān)系,Maven繼承)
  • 打包方式完全采用注解,采用注解方式啟動SpringMVC,SpringBoot Web組件集成SpringMVC框架
  • 簡化xml配置
  • 內(nèi)置嵌入Http服務(wù)器(默認(rèn)為Tomcat、Jetty),降低了對環(huán)境的要求
  • 最終以java應(yīng)用程序進(jìn)行執(zhí)行(SpringBoot項目中沒有Web.xml),運行中應(yīng)用狀態(tài)的監(jiān)控。
  • Starters自動依賴于版本控制

工欲善其事,必先利其器,既然SpringBoot有那么多優(yōu)點,我們肯定是要好好學(xué)的。在學(xué)習(xí)SpringBoot之前,需要搭建SpringBoot工程,那么問題來了,正在看文章的你知道怎么搭建SpringBoot工程么?它有幾種方式呢?這些方式各自有什么特點及聯(lián)系?工程是如何啟動的呢?

文章目錄

1、SpringBoot創(chuàng)建的三種方式

2、程序是如何執(zhí)行的

3、目錄結(jié)構(gòu)

方式一:網(wǎng)上在線創(chuàng)建

這種方式是在網(wǎng)上在線創(chuàng)建,然后可以導(dǎo)出壓縮包,解壓后的文件就是一個SpringBoot工程文件。

訪問https://start.spring.io/,打開后就是一個創(chuàng)建工程頁面,

Project:選擇創(chuàng)建工程的方式,可以使用Maven或者Cradle,這里我們采用Maven方式創(chuàng)建

Language:開發(fā)語言的選擇,我們選擇的Java

SpringBoot: SpringBoot的版本,選擇的是2.3.3

Project Metadata: 項目信息

Group 和 Artifact :項目坐標(biāo)

Name:項目名稱

Description:對工程的描述

Package name: 項目內(nèi)的包名稱

Packaging:打包方式,我們這里的選擇的是jar包

Java: Java語言的版本,這里選擇是11

Dependencies:添加依賴,這里我們僅僅添加Spring Web,它包含了Spring、SpringMVC一整套東西

每個選項都選擇好,就可以直接生成一個工程文件壓縮包了,我們只需要使用開發(fā)工具(Intellij IDEA)打開即可。

方式二:使用IDEA的spring Initializer

方式二是在IDEA使用Spring Initializer直接創(chuàng)建

可以看出,Spring Initializer與方式一相同,默認(rèn)采用https://start.spring.io創(chuàng)建

同方式一相同,填寫坐標(biāo)、語言、項目名稱、項目描述和加載依賴等信息。

NOTE

方式一和方式二創(chuàng)建工程時都需要聯(lián)網(wǎng),本質(zhì)上都是在https://start.spring.io網(wǎng)址上完成的,一旦網(wǎng)址加載速度慢或者打不開。因為SpringBoot工程本質(zhì)上就是一個Maven工程,我們可以在Maven工程的基礎(chǔ)上改造為SpringBoot工程

方式三:改造Maven工程創(chuàng)建SpringBoot

我們首先創(chuàng)建一個Maven工程

填寫坐標(biāo)

確定項目名稱

在pom文件中加入以下信息


<parent>
????????<groupId>org.springframework.bootgroupId>
????????<artifactId>spring-boot-starter-parentartifactId>
????????<version>2.3.3.RELEASEversion>
????parent>

??<dependencies>
??????
????????<dependency>
????????????<groupId>org.springframework.bootgroupId>
????????????<artifactId>spring-boot-starter-webartifactId>
????????dependency>

????dependencies>
???

添加啟動類


@EnableAutoConfiguration
public?class?Demo3Application?{
????????public?static?void?main(String[]?args)?{
????????????SpringApplication.run(Demo3Application.class,?args);
????????}
????}

深入理解程序的執(zhí)行

1、Pom文件

1、父項目

  • 父項目
<parent>
????????<groupId>org.springframework.bootgroupId>
????????<artifactId>spring-boot-starter-parentartifactId>
????????<version>2.3.3.RELEASEversion>
????parent>
  • spring-boot-starter-parent的父項目是
<parent>
????<groupId>org.springframework.bootgroupId>
????<artifactId>spring-boot-dependenciesartifactId>
????<version>2.3.3.RELEASEversion>
????<relativePath>../../spring-boot-dependenciesrelativePath>
??parent>

spring-boot-dependencies管理了SpingBoot應(yīng)用中的所有依賴,它是SpringBoot的版本仲裁中心,以后我們導(dǎo)入依賴時默認(rèn)是不需要寫版本的(沒有在dependencies里面管理的依賴自然需要聲明版本號) 。

2、啟動器

?<dependencies>
????????<dependency>
????????????<groupId>org.springframework.bootgroupId>
????????????<artifactId>spring-boot-starter-webartifactId>
????????dependency>
????dependencies>

spring-boot-starter: 是SpringBoot的場景啟動器,spring-boot-starter-web幫我們導(dǎo)入了web模塊正常運行所依賴的組件

深入spring-boot-starter-web的底層,我們可以看到它集成常用web模塊

<dependencies>
????<dependency>
??????<groupId>org.springframework.bootgroupId>
??????<artifactId>spring-boot-starterartifactId>
??????<version>2.3.3.RELEASEversion>
??????<scope>compilescope>
????dependency>
????<dependency>
??????<groupId>org.springframework.bootgroupId>
??????<artifactId>spring-boot-starter-jsonartifactId>
??????<version>2.3.3.RELEASEversion>
??????<scope>compilescope>
????dependency>
????<dependency>
??????<groupId>org.springframework.bootgroupId>
??????<artifactId>spring-boot-starter-tomcatartifactId>
??????<version>2.3.3.RELEASEversion>
??????<scope>compilescope>
????dependency>
????<dependency>
??????<groupId>org.springframeworkgroupId>
??????<artifactId>spring-webartifactId>
??????<version>5.2.8.RELEASEversion>
??????<scope>compilescope>
????dependency>
????<dependency>
??????<groupId>org.springframeworkgroupId>
??????<artifactId>spring-webmvcartifactId>
??????<version>5.2.8.RELEASEversion>
??????<scope>compilescope>
????dependency>
??dependencies>

NOTE:Spring Boot將所有的功能場景都抽取出來,做成一個個的starters(啟動器),只需要在項目里面引入這些starter 相關(guān)場景的所有依賴都會導(dǎo)入進(jìn)來。要用什么功能就導(dǎo)入什么場景的啟動器

2、主程序類(入口類)

@SpringBootApplication//@SpringBootApplication?來標(biāo)注一個主程序類,說明這是一個SpringBoot應(yīng)用
public?class?demo1?{
????public?static?void?main(String[]?args)?{
??//讓Spring應(yīng)用啟動起來
????????SpringApplication.run(demo1.class,args);
????}
}

@SpringBootApplication:標(biāo)注在某個類上說明這個類是SpringBoot的主配置類,SpringBoot 就應(yīng)該運行這個類的main方法來啟動SpringBoot應(yīng)用

打開SpringBootApplication的底層,發(fā)現(xiàn)它是一個組合注解

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
//包掃描,掃描的是與啟動類同一層的包及其子包
@ComponentScan(
????excludeFilters?=?{@Filter(
????type?=?FilterType.CUSTOM,
????classes?=?{TypeExcludeFilter.class}
),?@Filter(
????type?=?FilterType.CUSTOM,
????classes?=?{AutoConfigurationExcludeFilter.class}
)}
)
public?@interface?SpringBootApplication?{
  • @SpringBootConfiguration表明是SpringBoot的配置類

打開@SpringBootConfiguration底層

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public?@interface?SpringBootConfiguration?{

@Configuration:表明是一個配置類,配置類的作用等同于配置文件

  • EnableAutoConfiguration

    @EnableAutoCon?guration告訴SpringBoot開啟自動配置功能,這樣自動配置才能生效。

打開@EnableAutoConfiguration

@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public?@interface?EnableAutoConfiguration?{

@AutoCon?gurationPackage:自動配置包

@Import({Registrar.class})

將主配置類(@SpringBootApplication標(biāo)注的類)的所在包及下面所有子包里面的所有組件掃描到Spring容器

@Import(AutoCon?gurationPackages.Registrar.class)

給容器導(dǎo)入組件

EnableAutoCon?gurationImportSelector:導(dǎo)入哪些組件的選擇器

將所有需要導(dǎo)入的組件以全類名的方式返回,這些組件就會被添加到容器,會給容器中導(dǎo)入非常多的自動配置類(xxxAutoCon?guration),就是給容器中導(dǎo)入這個場景需要的所有組件, 并配置好這些組件。

3、resources文件夾下的目錄結(jié)構(gòu)

  • static:保存所有的靜態(tài)資源;js css ?images
  • templates:保存所有的模板頁面(Spring Boot默認(rèn)jar包使用嵌入式的Tomcat,默認(rèn)不支持JSP頁 面),可以使用模板引擎(freemarker、thymeleaf)
  • application.properties:Spring Boot應(yīng)用的配置文件,可以修改一些默認(rèn)設(shè)置

關(guān)注公眾號,讓我們每天進(jìn)步一點

總結(jié)

以上是生活随笔為你收集整理的springboot 历史版本文档_乘风破浪,SpringBoot入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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