在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Spring Boot 的設計目標

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-13 14:56 ? 次閱讀

什么是Spring Boot

Spring Boot 是 Spring 開源組織下的一個子項目,也是 Spring 組件一站式解決方案,主要是為了簡化使用 Spring 框架的難度和簡化 Spring 框架復雜的XML配置。使用 Spring Boot 可以很容易創建一個獨立運行的、基于 Spring 的生產級應用程序,而且Spring Boot 對 Spring 平臺和第三方庫做了一些版本適配,這樣我們就可以盡快的上手。

使用 Spring Boot 來不僅可以創建基于 war 方式部署的傳統Java應用程序,也可以通過創建獨立的不依賴任何容器(如 tomcat 等)的應用,只需使用 “java -jar” 就能啟動。Spring Boot 還提供了一個運行 "spring scripts " 的命令行工具。

Spring Boot 的設計目標

為所有的 Spring 開發提供一個從根本上更快、更廣泛的入門體驗。
開箱即用,但當需求開始偏離默認值時,可以快速從中解放出來使用個性化的定制。
提供一系列大型應用項目中經常用到的公共的非功能特性(如嵌入式服務器、安全、度量、健康檢查和外部化配置)。
零代碼生成零XML配置。

第一個 Spring Boot 應用程序

我們在學習一門新的開發語言,或者開發框架的時候,一般都習慣寫個 Hello World 的項目。一方面可以驗證基礎環境的搭建是否正確,另一方面可以快速了解整個開發流程。現在我們創建一個 Hello world 的 Spring Boot 項目。我這里使用的IDE 是 Intellij IDEA 。

第一步

打開Intellij IDEA 使用 Spring Initializr 向導 新建 Hello World的項目

圖片

選擇 Spring Web, 然后點擊 Finish 等待項目創建完成。

圖片

第二步

項目已經創建完成。下面我們來看一下項目結構:

圖片

來看下 HelloApplication 入口類的內容, HelloApplication 里面定義了一個 main 函數,一個基本的 @SpringBootApplication 注解。后續的文章會詳細解釋一下 @SpringBootApplication 注解。現在我們只要知道有了 @SpringBootApplication 注解,所有的 Spring Boot 項目依賴都可以掃描加入進來。

@SpringBootApplication
public class HelloApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }
}

再看一下 pom.xml 文件有那些依賴項目, POM 文件主要依賴了spring-boot-starter-web 項目,該項目包含了 web 項目所需的相關依賴,包括內置了 tomcat 服務器。另外還有一個比較重要的插件 spring-boot-maven-plugin,方便我們可以對 Spring Boot 項目打包成一個獨立運行的 jar 包。

< ?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 https://maven.apache.org/xsd/maven-4.0.0.xsd" >
    < modelVersion >4.0.0< /modelVersion >
    < parent >
        < groupId >org.springframework.boot< /groupId >
        < artifactId >spring-boot-starter-parent< /artifactId >
        < version >2.5.0< /version >
        < relativePath/ > < !-- lookup parent from repository -- >
    < /parent >
    < groupId >com.javanorth< /groupId >
    < artifactId >hello< /artifactId >
    < version >0.0.1-SNAPSHOT< /version >
    < name >hello< /name >
    < description >Demo project for Spring Boot< /description >
    < properties >
        < 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 >

第三步

修改 HelloApplication 主類,添加一個/hello 的請求

@RestController
@SpringBootApplication
public class HelloApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }
    @GetMapping("/hello")
    public String hello() {
        return "Hello World";
    }
}

第四步

在主類上,右鍵菜單欄里選擇 Run “HelloApplication” 命令,啟動項目。如下圖所示,2秒鐘就能啟動完成。從輸出日志可以看出,項目啟動了內置的 tomcat 服務器,分配了8080 作為本次 web 服務器的請求端口

圖片

好了,我們現在訪問一下 /hello 請求, 如下圖所示,輸出了 Hello World。

圖片

是不是很簡單,我們很快就上手完成了第一個 Hello World 應用。

第五步

我們再來看下,如何打包一個 Spring Boot 項目呢?前文我們已經提到了 spring-boot-maven-plugin 插件,所以我們可以使用mvn package 來對其進行打包

$ mvn package 
[INFO] Scanning for projects...
[INFO] 
[INFO] ------------------------< com.javanorth:hello >-------------------------
[INFO] Building hello 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] ...
[INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ hello ---
[INFO] Building jar: /Users/wbf/Documents/javanorth/target/hello-0.0.1-SNAPSHOT.jar
[INFO] 
[INFO] --- spring-boot-maven-plugin:2.5.0:repackage (repackage) @ hello ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.065 s
[INFO] Finished at: 2021-05-27T16:33:17+08:00
[INFO] ------------------------------------------------------------------------

打包完成,查看 target 目錄,我們能看到 hello-0.0.1-SNAPSHOT.jar 文件。

圖片

從上圖可以看到有個名字相類似的文件,hello-0.0.1-SNAPSHOT.jar.original 文件是 Spring Boot repackage 之前的文件,也就是說這個文件其實就是 maven 創建的原始jar文件,不包含其他依賴的jar包。

如果我們想看一下 hello-0.0.1-SNAPSHOT.jar 里面包含那些內容,有沒有什么快速的辦法呢,我這里給大家提供一個命令行的方法,使用 “jar tvf ” 就行。

jar tvf hello-0.0.1-SNAPSHOT.jar

小結

從上面的示例可以看出開始一個新的 Spring Boot 項目非常簡單,Spring Boot 提供了專門的創建向導項目,簡化了大量的 Spring 項目的創建難度。全程下來不到5分鐘,我們就完成了項目的創建和 hello world 的輸出演示。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2967

    瀏覽量

    104751
  • 開源
    +關注

    關注

    3

    文章

    3349

    瀏覽量

    42500
  • 應用程序
    +關注

    關注

    37

    文章

    3268

    瀏覽量

    57705
  • SpringBoot
    +關注

    關注

    0

    文章

    173

    瀏覽量

    179
收藏 人收藏

    評論

    相關推薦

    Spring Boot如何實現異步任務

    Spring Boot 提供了多種方式來實現異步任務,這里介紹三種主要實現方式。 1、基于注解 @Async @Async 注解是 Spring 提供的一種輕量級異步方法實現方式,它可以標記在方法上
    的頭像 發表于 09-30 10:32 ?1441次閱讀

    Spring Boot Starter需要些什么

    pulsar-spring-boot-starter是非常有必要的,在此之前,我們先看看一個starter需要些什么。 Spring Boot Starter spring-boot
    的頭像 發表于 09-25 11:35 ?765次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b> Starter需要些什么

    Spring boot中Redis的使用

    【本人禿頂程序員】springboot專輯:Spring boot中Redis的使用
    發表于 03-27 11:42

    Spring Boot嵌入式Web容器原理是什么

    Spring Boot嵌入式Web容器原理Spring Boot目標是構建“非常容易創建、獨立、產品級別的基于
    發表于 12-16 07:57

    Spring Boot從零入門1 詳述

    在開始學習Spring Boot之前,我之前從未接觸過Spring相關的項目,Java基礎還是幾年前自學的,現在估計也忘得差不多了吧,寫Spring
    的頭像 發表于 12-10 22:18 ?639次閱讀

    Spring認證」什么是Spring GraphQL?

    這個項目建立在 Boot 2.x 上,但它應該與最新的 Boot2.4.x5 相關。 要創建項目,請轉到start.spring.io并為要使用的GraphQL傳輸選擇啟動器: 啟動機 運輸 執行
    的頭像 發表于 08-10 14:08 ?825次閱讀
    「<b class='flag-5'>Spring</b>認證」什么是<b class='flag-5'>Spring</b> GraphQL?

    Spring Boot特有的實踐

    Spring Boot是最流行的用于開發微服務的Java框架。在本文中,我將與你分享自2016年以來我在專業開發中使用Spring Boot所采用的最佳實踐。這些內容是基于我的個人經驗
    的頭像 發表于 09-29 10:24 ?913次閱讀

    強大的Spring Boot 3.0要來了

    來源:OSC開源社區(ID:oschina2013) Spring Boot 3.0 首個 RC 已發布,此外還為兩個分支發布了更新:2.7.5 2.6.13。 3.0.0-RC1: https
    的頭像 發表于 10-31 11:17 ?1875次閱讀

    怎樣使用Kiuwan保護Spring Boot應用程序呢?

    Spring Boot 提供了快速輕松地構建基于Spring 的應用程序所需的工具、功能和依賴項。
    的頭像 發表于 03-16 09:10 ?793次閱讀

    Spring Boot Web相關的基礎知識

    上一篇文章我們已經學會了如何通過IDEA快速建立一個Spring Boot項目,還介紹了Spring Boot項目的結構,介紹了項目配置文件pom.xml的組成部分,并且撰寫了我們
    的頭像 發表于 03-17 15:03 ?659次閱讀

    Spring Boot中如何使用定時任務

    本文介紹在 Spring Boot 中如何使用定時任務,使用非常簡單,就不做過多說明了。
    的頭像 發表于 04-12 10:56 ?975次閱讀

    Spring Boot如何優雅實現數據加密存儲、模糊匹配和脫敏

    近來我們都在圍繞著使用Spring Boot開發業務系統時如何保證數據安全性這個主題展開總結,當下大部分的B/S架構的系統也都是基于Spring Boot + SpringMVC三層架
    的頭像 發表于 06-19 14:42 ?1964次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b>如何優雅實現數據加密存儲、模糊匹配和脫敏

    Spring Boot Actuator快速入門

    不知道大家在寫 Spring Boot 項目的過程中,使用過 Spring Boot Actuator 嗎?知道 Spring
    的頭像 發表于 10-09 17:11 ?639次閱讀

    Spring Boot啟動 Eureka流程

    在上篇中已經說過了 Eureka-Server 本質上是一個 web 應用的項目,今天就來看看 Spring Boot 是怎么啟動 Eureka 的。 Spring Boot 啟動 E
    的頭像 發表于 10-10 11:40 ?894次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b>啟動 Eureka流程

    Spring Boot的啟動原理

    可能很多初學者會比較困惑,Spring Boot 是如何做到將應用代碼和所有的依賴打包成一個獨立的 Jar 包,因為傳統的 Java 項目打包成 Jar 包之后,需要通過 -classpath 屬性
    的頭像 發表于 10-13 11:44 ?652次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b>的啟動原理
    主站蜘蛛池模板: 人人草人人干| 88影视在线观看污污| 精品精品国产高清a毛片牛牛| 久久久精品免费| 亚洲1234区乱码| 一区二区三区四区视频在线观看 | 全免费午夜一级毛片真人| 99pao强力打造免费高清色| 男女午夜特黄毛片免费| 亚洲电影一区二区三区| 一级毛片在线不卡直接观看| 九九九精品午夜在线观看| 四虎永久免费最新在线| 欧美日a| 国产一区二区三区免费大片天美| 91色蝌蚪| 激情视频综合网| 一级中文字幕乱码免费| 日本免费xxxx色视频| 国产色视频网站| 手机看片1024福利| 免费视频h| 亚洲国产情侣偷自在线二页| 黄色美女免费网站| 色视频色露露永久免费观看| 欧美一区二区三区激情啪啪 | 午夜特级毛片| 99精品视频在线播放2| 国语对白一区二区三区| 日本免费成人| 清纯唯美亚洲综合一区| 在线观看成人网| 欧美videosex性欧美成人| 在线国产播放| 在线免费观看h| 资源在线www天堂| 日本三级网址| 免费人成网站线观看合集| 欧美三j片| 免费在线看a| 香蕉午夜视频|