一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

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

jf_78858299 ? 來源:QStack ? 作者: 月下西樓 ? 2023-03-17 15:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

背景

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

何為Spring Boot

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

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

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

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

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

上面我們已經(jīng)介紹了什么是Spring,什么是Spring Boot,還是老規(guī)矩why比what更重要,為什么我們需要Spring Boot,它的優(yōu)勢是什么呢?

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

總的來說,Spring Boot讓構(gòu)建、編碼、配置、部署、監(jiān)控都變得非常簡單。

開啟Spring Boot之旅

項目創(chuàng)建

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

圖片

項目結(jié)構(gòu)

接下來我們看一下新建項目的項目結(jié)構(gòu),如下圖所示

圖片

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

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

圖片

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

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

pom.xml解析

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

<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支持項目的父子結(jié)構(gòu),引入后會默認繼承父級的配置,此版本引入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體系內(nèi)依賴組件不需要填寫具體版本號。

<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>

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

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

最后一部分是**「構(gòu)建配置信息」**

<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

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

    關注

    20

    文章

    2989

    瀏覽量

    109677
  • 開發(fā)
    +關注

    關注

    0

    文章

    373

    瀏覽量

    41519
  • spring
    +關注

    關注

    0

    文章

    340

    瀏覽量

    15077
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Spring Boot如何實現(xiàn)異步任務

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

    Spring Boot Starter需要些什么

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

    Gradle構(gòu)建的多模塊Spring Boot項目

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

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

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

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

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

    Spring Boot從零入門1 詳述

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

    Spring認證」什么是Spring GraphQL?

    這個項目建立Boot 2.x 上,但它應該與最新的 Boot2.4.x5 相關。 要創(chuàng)建項目,請轉(zhuǎn)到start.
    的頭像 發(fā)表于 08-10 14:08 ?1035次閱讀
    「<b class='flag-5'>Spring</b>認證」什么是<b class='flag-5'>Spring</b> GraphQL?

    Spring Boot特有的實踐

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

    強大的Spring Boot 3.0要來了

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

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

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

    Spring Boot Web相關的基礎知識

    篇文章我們已經(jīng)學會了如何通過IDEA快速建立
    的頭像 發(fā)表于 03-17 15:03 ?889次閱讀

    Spring Boot Actuator快速入門

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

    Spring Boot啟動 Eureka流程

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

    Spring Boot的啟動原理

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

    Spring Boot 的設計目標

    什么是Spring Boot Spring BootSpring 開源組織下的
    的頭像 發(fā)表于 10-13 14:56 ?798次閱讀
    <b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b> 的設計目標