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

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

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

3天內不再提示

如何通過IDEA快速建立一個Spring Boot項目

jf_78858299 ? 來源:QStack ? 作者: 月下西樓 ? 2023-03-17 15:00 ? 次閱讀

背景

在我看來編程是一棵樹,編程語言就是這棵樹由主干生長出來的樹枝,而各種語言的框架則就像是樹枝上的樹葉,是當前這門語言的結晶,在實際的生產環境中扮演著重要角色,學習這些框架能夠幫我們真正的具備實際開發能力,進而找到一份好的工作,有興趣可以看看聊聊自學編程這篇文章,主要是我對于編程的一些看法,也許會對你有所啟發。

何為Spring Boot

在說Spring Boot之前先要了解Spring,那么Spring是什么呢?Spring 框架是一個分層的、面向切面的Java應用程序的一站式輕量級解決方案,它是Spring技術棧的核心和基礎,是為了解決企業級應用開發的復雜性而創建的。我們還是遵循之前所說的學習是一新事物時,先要略其大觀,不求甚解。在這里先不管什么分層,面向切面,現在只需要知道Spring是一個Java EE的開發框架,幫助開發通俗意義上的Java后端。

那么Spring Boot又是什么呢?Spring Boot是Pivotal團隊在Spring的基礎上提供的一套全新的開源框架,其目的是為了簡化Spring應用的搭建和開發過程。

Spring Boot去除了大量的 XML配置文件,簡化了復雜的依賴管理。Spring Boot具有Spring一切優秀特性,Spring能做的事,Spring Boot都可以做,而且使用更加簡單,功能更加豐富,性能更加穩定而健壯。

隨著近些年來微服務技術的流行,Spring Boot也成了時下炙手可熱的技術。Spring Boot集成了大量常用的第三方庫配置,Spring Boot應用中這些第三方庫幾乎可以是零配置的開箱即用(out-of-the-box)大部分的 Spring Boot 應用都只需要非常少量的配置代碼(基于Java的配置),開發者能夠更加專注于業務邏輯。

由此可以看出Spring Boot是由Spring衍生出的,傳統的Spring框架很多復雜的配置,而Spring Boot所做的就是使用合理的默認值簡化Spring一系列的配置,提高開發效率,而使用合理的默認值就是Spring Boot中核心的設計思想“約定優于配置”。

上面我們已經介紹了什么是Spring,什么是Spring Boot,還是老規矩why比what更重要,為什么我們需要Spring Boot,它的優勢是什么呢?

  • 快速構建:使用Spring Initializr可以快速創建項目,同時提供了豐富的解決方案,便于快速集成各種解決方案,提升開發效率。
  • 簡化依賴:提供了豐富的Starters,簡化Maven配置,避免版本兼容問題。
  • 一鍵部署:內嵌Servlet容器,如Tomcat、Jetty,能夠直接打包成可執行JAR文件獨立運行,支持Jenkins、Docker,輕松實現自動化運維。
  • 應用監控:自帶Actuator監控組件,輕松監控服務的各項狀態。使用Spring Boot Admin可以輕松部署功能完善的應用監控體系。

總的來說,Spring Boot讓構建、編碼、配置、部署、監控都變得非常簡單。

開啟Spring Boot之旅

項目創建

如下圖所示,在IDEA中可以通過Spring Initializr快速創建項目,Group是公司,Artifact是項目名稱,點擊下一步即可創建一個Spring Boot項目。

圖片

項目結構

接下來我們看一下新建項目的項目結構,如下圖所示

圖片

從上面可以看到,我們新建的test項目只有3個主要目錄* src/main/java:程序開發以及主程序目錄

  • src/main/resources:配置文件和資源文件目錄
  • src/test/java:測試程序目錄 然而一個完整的項目包括前臺頁面、model實體、數據庫訪問、公共基礎類等非常多的文件和目錄,Spring Boot建議目錄如下圖

圖片

如圖中com.qstack.test為根目錄應包括:* TestApplication.java:建議放到根目錄下,是項目的啟動類,Spring Boot項目只能有一個main()方法入口。

  • comm:建議放置公共的類,如全局的配置文件、工具類等。
  • model:主要用于實體(Entity)。
  • repository:主要用于數據庫訪問層的代碼
  • service:主要是業務類代碼
  • web:負責前臺頁面訪問Controller路由 resources目錄下包括:
  • static:存放web訪問的靜態資源如JS、CSS、圖片等。
  • templates:存放頁面模版
  • application.properties: 存放項目的配置信息 test目錄存放單元測試代碼,目錄結構與java目錄結構相同。pom.xml用于配置項目依賴包以及其他配置。

pom.xml解析

pom.xml是Maven項目中非常重要的配置文件,我們新建的test項目的pom.xml內容如下:

<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<span class="hljs-name"modelVersion>
    <parent>
        <groupId>org.springframework.boot<span class="hljs-name"groupId>
        <artifactId>spring-boot-starter-parent<span class="hljs-name"artifactId>
        <version>2.6.5<span class="hljs-name"version>
        <relativePath/> 
    <span class="hljs-name"parent>
    <groupId>com.qstack<span class="hljs-name"groupId>
    <artifactId>test<span class="hljs-name"artifactId>
    <version>0.0.1-SNAPSHOT<span class="hljs-name"version>
    <name>test<span class="hljs-name"name>
    <description>test<span class="hljs-name"description>
    <properties>
        <java.version>1.8<span class="hljs-name"java.version>
    <span class="hljs-name"properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot<span class="hljs-name"groupId>
            <artifactId>spring-boot-starter<span class="hljs-name"artifactId>
        <span class="hljs-name"dependency>

        <dependency>
            <groupId>org.springframework.boot<span class="hljs-name"groupId>
            <artifactId>spring-boot-starter-web<span class="hljs-name"artifactId>
        <span class="hljs-name"dependency>

        <dependency>
            <groupId>org.springframework.boot<span class="hljs-name"groupId>
            <artifactId>spring-boot-starter-test<span class="hljs-name"artifactId>
            <scope>test<span class="hljs-name"scope>
        <span class="hljs-name"dependency>
    <span class="hljs-name"dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot<span class="hljs-name"groupId>
                <artifactId>spring-boot-maven-plugin<span class="hljs-name"artifactId>
            <span class="hljs-name"plugin>
        <span class="hljs-name"plugins>
    <span class="hljs-name"build>

<span class="hljs-name"project>

pom.xml主要包含四個部分,下面是 「項目的描述信息」 。groupId是項目的包路徑,artifactId是項目名稱,version是項目版本號,name是項目名稱,descriptoion是項目描述。

<groupId>com.qstack<span class="hljs-name"groupId>
<artifactId>test<span class="hljs-name"artifactId>
<version>0.0.1-SNAPSHOT<span class="hljs-name"version>
<name>test<span class="hljs-name"name>
<description>test<span class="hljs-name"description>

pom.xml還包含 「項目的依賴」 ,項目的依賴信息分為parent和dependencies兩部分,以下是parent部分。parent是配置父級目錄的信息,Maven支持項目的父子結構,引入后會默認繼承父級的配置,此版本引入spring-boot-starter-parent定義Spring Boot的基礎版。

<parent>
    <groupId>org.springframework.boot<span class="hljs-name"groupId>
    <artifactId>spring-boot-starter-parent<span class="hljs-name"artifactId>
    <version>2.6.5<span class="hljs-name"version>
    <relativePath/> 
<span class="hljs-name"parent>

dependencies是配置項目所需要的依賴包,Spring Boot體系內依賴組件不需要填寫具體版本號。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot<span class="hljs-name"groupId>
        <artifactId>spring-boot-starter<span class="hljs-name"artifactId>
    <span class="hljs-name"dependency>

    <dependency>
        <groupId>org.springframework.boot<span class="hljs-name"groupId>
        <artifactId>spring-boot-starter-web<span class="hljs-name"artifactId>
    <span class="hljs-name"dependency>

    <dependency>
        <groupId>org.springframework.boot<span class="hljs-name"groupId>
        <artifactId>spring-boot-starter-test<span class="hljs-name"artifactId>
        <scope>test<span class="hljs-name"scope>
    <span class="hljs-name"dependency>
<span class="hljs-name"dependencies>

下面是 「項目構建的公共變量」 ,指明了jdk版本。

<properties>
    <java.version>1.8<span class="hljs-name"java.version>
<span class="hljs-name"properties>

最后一部分是**「構建配置信息」**

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot<span class="hljs-name"groupId>
            <artifactId>spring-boot-maven-plugin<span class="hljs-name"artifactId>
        <span class="hljs-name"plugin>
    <span class="hljs-name"plugins>
<span class="hljs-name"build>

hello world

首先檢查一下pom.xml中有沒有以下依賴,沒有則加上。

<dependency>
    <groupId>org.springframework.boot<span class="hljs-name"groupId>
    <artifactId>spring-boot-starter-web<span class="hljs-name"artifactId>
<span class="hljs-name"dependency>

在之前新建的web目錄下新建HelloController如下

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello() {
        return "Hello @Spring Boot!!!";
    }
}

然后啟動項目,在瀏覽器輸入http://localhost:8080/hello

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

    關注

    20

    文章

    2986

    瀏覽量

    107164
  • 開發
    +關注

    關注

    0

    文章

    373

    瀏覽量

    41388
  • spring
    +關注

    關注

    0

    文章

    340

    瀏覽量

    14917
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Spring Boot如何實現異步任務

    ,用來告訴 Spring 這個方法是異步方法,Spring 會將這個方法的執行放在異步線程中進行。使用 @Async 注解需要滿足以下條件: 需要在
    的頭像 發表于 09-30 10:32 ?1690次閱讀

    Spring Boot Starter需要些什么

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

    Gradle構建的多模塊Spring Boot項目

    中找到 Spring Initializr,創建全新的 demo 項目,創建成功后結構如下: 之后,程序會自動下載 Gradle 安裝包,并且
    的頭像 發表于 09-25 14:46 ?3561次閱讀
    Gradle構建的多模塊<b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b><b class='flag-5'>項目</b>

    啟動Spring Boot項目應用的三種方法

    的讀取,開啟注解4)配置日志文件...配置完成之后部署tomcat 調試。但是如果使用spring boot呢?很簡單,我僅僅只需要非常少的幾個配置就可以迅速方便的搭建起來套web項目
    發表于 01-14 17:33

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

    同樣改變了傳統的Web應用服務的啟動流程和部署方式。通過自動配置機制,Spring Boot提供了
    發表于 12-16 07:57

    Spring Boot從零入門1 詳述

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

    Spring認證」什么是Spring GraphQL?

    這個項目建立Boot 2.x 上,但它應該與最新的 Boot2.4.x5 相關。 要創建項目,請轉到start.
    的頭像 發表于 08-10 14:08 ?1000次閱讀
    「<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 ?1129次閱讀

    強大的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 ?2268次閱讀

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

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

    Spring Boot Web相關的基礎知識

    篇文章我們已經學會了如何通過IDEA快速建立
    的頭像 發表于 03-17 15:03 ?849次閱讀

    Spring Boot Actuator快速入門

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

    Spring Boot啟動 Eureka流程

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

    Spring Boot的啟動原理

    可能很多初學者會比較困惑,Spring Boot 是如何做到將應用代碼和所有的依賴打包成獨立的 Jar 包,因為傳統的 Java 項目
    的頭像 發表于 10-13 11:44 ?911次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b>的啟動原理

    Spring Boot 的設計目標

    什么是Spring Boot Spring BootSpring 開源組織下的
    的頭像 發表于 10-13 14:56 ?774次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b> 的設計目標
    主站蜘蛛池模板: 色偷偷网 | 亚洲午夜免费视频 | 亚洲午夜视频在线 | 精品一区二区三区自拍图片区 | 天天视频免费入口 | 清纯漂亮小美女准备啪啪 | 日本三级香港三级人妇99 | 四虎精品永久在线 | 亚洲国产精品va在线观看麻豆 | 欧美黑粗特黄午夜大片 | 国产伦子一区二区三区四区 | 91天天操 | 欧美国产一区二区二区 | 欧美高清milf在线播放 | 欧美精品综合一区二区三区 | 玖玖国产 | 男啪女r18肉车文 | 久久www免费人成高清 | 欧美成人免费高清网站 | 天天摸夜夜添夜夜添国产 | 美女久久久 | 久久国产精品系列 | 欧美香蕉在线 | 日本a级片在线观看 | 中文在线1区二区六区 | 日韩黄色成人 | 国产乱码1卡一卡二卡 | 日本三级免费观看 | 日本黄a | 一二三区在线视频 | 日本三人交xxx69视频 | 狠狠色狠狠色综合 | 手机看片国产免费永久 | 流不尽奶水的大乳h | 女上男下边吃奶边做视频成都 | 亚洲444kkk| 最新合集丨新片速递 | 黄网站在线观看高清免费 | 97久久人人 | 四虎永久免费在线观看 | 久久国产精品99久久久久久老狼 |