国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

用 Docker 構(gòu)建、運(yùn)行、發(fā)布一個 Spring Boot 應(yīng)用

這篇具有很好參考價值的文章主要介紹了用 Docker 構(gòu)建、運(yùn)行、發(fā)布一個 Spring Boot 應(yīng)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

用 Docker 構(gòu)建、運(yùn)行、發(fā)布一個 Spring Boot 應(yīng)用

2016-03-20??Docker?Spring Boot??Docker?Spring Boot?鏡像?Docker Hub

本文演示了如何用 Docker 構(gòu)建、運(yùn)行、發(fā)布來一個 Spring Boot 應(yīng)用。

Docker 簡介

Docker?是一個 Linux 容器管理工具包,具備“社交”方面,允許用戶發(fā)布容器的 image (鏡像),并使用別人發(fā)布的 image。Docker image 是用于運(yùn)行容器化進(jìn)程的方案,在本文中,我們將構(gòu)建一個簡單的 Spring Boot 應(yīng)用程序。

有關(guān) Docker 的詳細(xì)介紹,可以移步至?《簡述 Docker》

前置條件

JDK 1.8+

Maven 3.0+

Docker 最新版。有關(guān) Docker 在的安裝,可以參閱?《Docker 在 CentOS 下的安裝、使用》。 如果你的電腦不是 Linux 系統(tǒng),最好裝個虛擬機(jī),在虛擬機(jī)里面裝個 Linux ,因?yàn)?Docker 的依賴 Linux。

用 Maven 構(gòu)建項(xiàng)目

創(chuàng)建目錄結(jié)構(gòu)

項(xiàng)目的目錄結(jié)構(gòu)因符合 Maven 的約定。

在 *nix 系統(tǒng)下執(zhí)行?mkdir -p src/main/java/docker_spring_boot?,生產(chǎn)如下結(jié)構(gòu) :

└── src

└── main

└── java

└── com

└── waylau

└── docker_spring_boot

創(chuàng)建 pom.xml 文件

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

com.waylau

docker-spring-boot

jar

1.0.0

docker-spring-boot

Getting started with Spring Boot and Docker

org.springframework.boot

spring-boot-starter-parent

1.3.3.RELEASE

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-maven-plugin

com.spotify

docker-maven-plugin

0.4.3

${docker.image.prefix}/${project.artifactId}

src/main/docker

/

${project.build.directory}

${project.build.finalName}.jar

UTF-8

waylau

1.3.3.RELEASE

Spring Boot Maven plugin?提供了很多方便的功能:

它收集的類路徑上所有 jar 文件,并構(gòu)建成一個單一的、可運(yùn)行的“über-jar”,這使得它更方便地執(zhí)行和傳輸服務(wù)。

它搜索的?public static void main()?方法來標(biāo)記為可運(yùn)行的類。

它提供了一個內(nèi)置的依賴解析器,用于設(shè)置版本號以匹配?Spring Boot 的依賴。您可以覆蓋任何你想要的版本,但它會默認(rèn)選擇的 Boot 的版本集。

Spotify 的?docker-maven-plugin?插件是用于構(gòu)建 Maven 的 Docker Image

imageName指定了鏡像的名字,本例為?waylau/docker-spring-boot

dockerDirectory指定 Dockerfile 的位置

resources是指那些需要和 Dockerfile 放在一起,在構(gòu)建鏡像時使用的文件,一般應(yīng)用 jar 包需要納入。本例,只需一個 jar 文件。

編寫 Spring Boot 應(yīng)用

編寫一個簡單的 Spring Boot 應(yīng)用 :

src/main/java/com/waylau/docker_spring_boot/Application.java:

package com.waylau.docker_spring_boot;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

/**

* 主應(yīng)用入口

* @author waylau.com

* @date 2016年3月19日

*/

@SpringBootApplication

@RestController

public class Application {

@RequestMapping("/")

public String home() {

return "Hello Docker World."

+ "
Welcome to waylau.com";

}

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

解釋下上面的代碼:

類用?@SpringBootApplication?@RestController?標(biāo)識,可用 Spring MVC 來處理 Web 請求。

@RequestMapping?將?/?映射到?home()?,并將"Hello Docker World" 文本作為響應(yīng)。

main()?方法使用 Spring Boot 的?SpringApplication.run()?方法來啟動應(yīng)用。

運(yùn)行程序

使用 Maven

編譯:

mvn package

運(yùn)行:

java -jar target/docker-spring-boot-1.0.0.jar

訪問項(xiàng)目

如果程序正確運(yùn)行,瀏覽器訪問?http://localhost:8080/,可以看到頁面 “Hello Docker World.” 字樣。

將項(xiàng)目容器化

Docker 使用?Dockerfile?文件格式來指定 image 層,

創(chuàng)建文件?src/main/docker/Dockerfile:

FROM frolvlad/alpine-oraclejdk8:slim

VOLUME /tmp

ADD docker-spring-boot-1.0.0.jar app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

解釋下這個配置文件:

VOLUME?指定了臨時文件目錄為/tmp。其效果是在主機(jī)?/var/lib/docker?目錄下創(chuàng)建了一個臨時文件,并鏈接到容器的/tmp。改步驟是可選的,如果涉及到文件系統(tǒng)的應(yīng)用就很有必要了。/tmp目錄用來持久化到 Docker 數(shù)據(jù)文件夾,因?yàn)?Spring Boot 使用的內(nèi)嵌 Tomcat 容器默認(rèn)使用/tmp作為工作目錄

項(xiàng)目的 jar 文件作為 "app.jar" 添加到容器的

ENTRYPOINT?執(zhí)行項(xiàng)目 app.jar。為了縮短?Tomcat 啟動時間,添加一個系統(tǒng)屬性指向 "/dev/urandom" 作為 Entropy Source

構(gòu)建 Docker Image

執(zhí)行構(gòu)建成為 docker image:

mvn package docker:build

運(yùn)行

運(yùn)行 Docker Image

docker run -p 8080:8080 -t waylau/docker-spring-boot

[root@waylau spring-boot]# docker run -p 8080:8080 -t waylau/docker-spring-boot

. ____ _ __ _ _

/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

\\/ ___)| |_)| | | | | || (_| | ) ) ) )

' |____| .__|_| |_|_| |_\__, | / / / /

=========|_|==============|___/=/_/_/_/

:: Spring Boot :: (v1.3.3.RELEASE)

2016-03-20 08:45:51.276 INFO 1 --- [ main] c.waylau.docker_spring_boot.Application : Starting Application v1.0.0 on 048fb623038f with PID 1 (/app.jar started by root in /)

2016-03-20 08:45:51.289 INFO 1 --- [ main] c.waylau.docker_spring_boot.Application : No active profile set, falling back to default profiles: default

2016-03-20 08:45:51.722 INFO 1 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@669af5fc: startup date [Sun Mar 20 08:45:51 GMT 2016]; root of context hierarchy

2016-03-20 08:45:54.874 INFO 1 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Overriding bean definition for bean 'beanNameViewResolver' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]

2016-03-20 08:45:57.893 INFO 1 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)

2016-03-20 08:45:57.982 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat

2016-03-20 08:45:57.984 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.0.32

2016-03-20 08:45:58.473 INFO 1 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext

2016-03-20 08:45:58.473 INFO 1 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 6877 ms

2016-03-20 08:45:59.672 INFO 1 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]

2016-03-20 08:45:59.695 INFO 1 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]

2016-03-20 08:45:59.701 INFO 1 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]

2016-03-20 08:45:59.703 INFO 1 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]

2016-03-20 08:45:59.703 INFO 1 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]

2016-03-20 08:46:00.862 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@669af5fc: startup date [Sun Mar 20 08:45:51 GMT 2016]; root of context hierarchy

2016-03-20 08:46:01.166 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String com.waylau.docker_spring_boot.Application.home()

2016-03-20 08:46:01.189 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

2016-03-20 08:46:01.190 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)

2016-03-20 08:46:01.302 INFO 1 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2016-03-20 08:46:01.302 INFO 1 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2016-03-20 08:46:01.438 INFO 1 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2016-03-20 08:46:01.833 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup

2016-03-20 08:46:02.332 INFO 1 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)

2016-03-20 08:46:02.343 INFO 1 --- [ main] c.waylau.docker_spring_boot.Application : Started Application in 13.194 seconds (JVM running for 15.828)

訪問項(xiàng)目

如果程序正確運(yùn)行,瀏覽器訪問?http://localhost:8080/,可以看到頁面 “Hello Docker World.” 字樣。

推送 image 到 Docker Hub

首先,你在 Docker Hub 要有注冊賬號,且創(chuàng)建了相應(yīng)的庫;

其次,docker 推送前,先要登錄,否則報unauthorized: access to the requested resource is not authorized的錯誤

執(zhí)行:

docker login

輸出為:

[root@waylau spring-boot]# docker login

Username: waylau

Password:

Email: waylau521@gmail.com

WARNING: login credentials saved in /root/.docker/config.json

Login Succeeded

執(zhí)行推送

docker push waylau/docker-spring-boot

[root@waylau spring-boot]# docker push waylau/docker-spring-boot

The push refers to a repository [docker.io/waylau/docker-spring-boot]

751d29eef02e: Layer already exists

4da3741f39c7: Pushed

5f70bf18a086: Layer already exists

7e4d0cb13643: Layer already exists

8f045733649f: Layer already exists

latest: digest: sha256:eb4d5308ba1bb27489d808279e74784bda6761b3574f4298d746abba59b35164 size: 9415

鏡像加速器

Docker Hub 在國外,有時候拉取 Image 極其緩慢,可以使用國內(nèi)的鏡像來實(shí)現(xiàn)加速

阿里云

echo "DOCKER_OPTS=\"--registry-mirror=https://yourlocation.mirror.aliyuncs.com\"" | sudo tee -a /etc/default/docker

sudo service docker restart

其中?https://yourlocation.mirror.aliyuncs.com?是您在阿里云注冊后的專屬加速器地址:

DaoCloud

sudo echo “DOCKER_OPTS=\”\$DOCKER_OPTS –registry-mirror=http://your-id.m.daocloud.io -d\”” >> /etc/default/docker

sudo service docker restart

其中?http://your-id.m.daocloud.io?是您在 DaoCloud 注冊后的專屬加速器地址:

源碼

獲取項(xiàng)目源碼,?https://github.com/waylau/docker-demos?中的?samples/spring-boot

獲取項(xiàng)目鏡像, 執(zhí)行

docker pull waylau/docker-spring-boot

參考引用

http://spring.io/guides/gs/spring-boot-docker/

https://yq.aliyun.com/articles/2930?utm_source=tuicool&utm_medium=referral

https://hub.docker.com/r/waylau/docker-spring-boot/

??在 Tomcat 中配置 SSL/TLS 以支持 HTTPS??Docker 在 openSUSE 下的安裝、使用??

==============================================================

docker-maven-plugin打包鏡像,并上傳到私有倉庫

docker-maven-plugin打包鏡像,并上傳到私有倉庫_docker-maven-plugin 推送私有倉庫_zhangjunli的博客-CSDN博客

docker-maven-plugin 插件就是為了幫助我們在Maven工程中,通過簡單的配置,自動生成鏡像并推送到倉庫中。文章來源地址http://www.zghlxwxcb.cn/news/detail-503146.html

到了這里,關(guān)于用 Docker 構(gòu)建、運(yùn)行、發(fā)布一個 Spring Boot 應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 入門Spring Boot:快速構(gòu)建Java應(yīng)用的利器

    入門Spring Boot:快速構(gòu)建Java應(yīng)用的利器

    Spring Boot是由Pivotal團(tuán)隊(duì)開發(fā)的開源框架,它基于Spring框架,旨在簡化Java應(yīng)用程序的開發(fā)過程。它提供了一種約定大于配置的方式,通過自動配置和起步依賴(Starter Dependencies)來消除繁瑣的配置,從而使開發(fā)者能夠更快地構(gòu)建獨(dú)立、可執(zhí)行的、生產(chǎn)級的Spring應(yīng)用。 與傳統(tǒng)的

    2024年02月07日
    瀏覽(18)
  • 【Spring Boot】數(shù)據(jù)庫持久層框架MyBatis — Spring Boot構(gòu)建MyBatis應(yīng)用程序

    Spring Boot是用于快速構(gòu)建Spring應(yīng)用程序的框架。MyBatis是一種Java持久化框架,可以幫助開發(fā)人員輕松地管理數(shù)據(jù)庫。將Spring Boot與MyBatis結(jié)合使用可以使開發(fā)人員更容易地創(chuàng)建和管理數(shù)據(jù)庫應(yīng)用程序。 以下是使用Spring Boot構(gòu)建MyBatis應(yīng)用程序的步驟: 添加MyBatis依賴項(xiàng):在項(xiàng)目的

    2024年02月10日
    瀏覽(29)
  • 構(gòu)建現(xiàn)代化的Java應(yīng)用:深入探討Spring Boot實(shí)際應(yīng)用

    構(gòu)建現(xiàn)代化的Java應(yīng)用:深入探討Spring Boot實(shí)際應(yīng)用

    ????????Spring Boot作為Spring框架的一部分,是一款用于簡化Java應(yīng)用開發(fā)的框架。它通過提供約定大于配置的原則,使得開發(fā)者能夠更加迅速、高效地搭建和部署應(yīng)用。本文將深入探討Spring Boot的實(shí)際應(yīng)用場景,以及一些最佳實(shí)踐,助力開發(fā)者更好地利用這一現(xiàn)代化的Java開發(fā)

    2024年02月03日
    瀏覽(26)
  • 構(gòu)建現(xiàn)代化的Java應(yīng)用: 深入探討Spring Boot實(shí)際應(yīng)用

    Spring Boot 是一個快速構(gòu)建基于 Spring 框架的應(yīng)用程序的框架。它提供了自動配置、代碼生成器和快速開發(fā)工具,使得創(chuàng)建現(xiàn)代化的 Java 應(yīng)用程序變得非常容易。在這里,我們將深入探討 Spring Boot 實(shí)際應(yīng)用的一些關(guān)鍵方面。 1. 數(shù)據(jù)庫訪問: 2. Web 應(yīng)用程序開發(fā): 3. 安全性: 4

    2024年02月02日
    瀏覽(28)
  • 精通Spring Boot單元測試:構(gòu)建健壯的Java應(yīng)用

    在當(dāng)今軟件開發(fā)領(lǐng)域,單元測試已經(jīng)成為確保應(yīng)用質(zhì)量和可維護(hù)性的關(guān)鍵步驟。特別是在Java生態(tài)系統(tǒng)中,Spring Boot框架作為一種廣泛應(yīng)用的解決方案,其對于單元測試的支持更是讓開發(fā)者受益匪淺。本博客的目標(biāo)是為開發(fā)者提供一份清晰易懂的指南,幫助他們利用Spring Boot框

    2024年03月15日
    瀏覽(22)
  • Spring Boot的魔法:構(gòu)建高效Java應(yīng)用的秘訣

    Spring Boot的魔法:構(gòu)建高效Java應(yīng)用的秘訣

    ??歡迎來到架構(gòu)設(shè)計(jì)專欄~Spring Boot的魔法:構(gòu)建高效Java應(yīng)用的秘訣 ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:架構(gòu)設(shè)計(jì) ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實(shí)戰(zhàn)項(xiàng)目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平有限,

    2024年02月08日
    瀏覽(19)
  • 快速入門:使用 Spring Boot 構(gòu)建 Web 應(yīng)用程序

    快速入門:使用 Spring Boot 構(gòu)建 Web 應(yīng)用程序

    本文將討論以下主題: 安裝 Java JDK、Gradle 或 Maven 和 Eclipse 或 IntelliJ IDEA 創(chuàng)建一個新的 Spring Boot 項(xiàng)目 運(yùn)行 Spring Boot 應(yīng)用程序 編寫一個簡單的 Web 應(yīng)用程序 打包應(yīng)用程序以用于生產(chǎn)環(huán)境 通過這些主題,您將能夠開始使用 Spring Boot 并創(chuàng)建自己的 Web 應(yīng)用程序。 Spring Boot是一個

    2024年02月07日
    瀏覽(73)
  • Spring Boot與Netty:構(gòu)建高性能的網(wǎng)絡(luò)應(yīng)用

    Spring Boot與Netty:構(gòu)建高性能的網(wǎng)絡(luò)應(yīng)用

    點(diǎn)擊下載《Spring Boot與Netty:構(gòu)建高性能的網(wǎng)絡(luò)應(yīng)用》 本文將詳細(xì)探討如何在Spring Boot應(yīng)用中集成Netty,以構(gòu)建高性能的網(wǎng)絡(luò)應(yīng)用。我們將首先了解Netty的原理和優(yōu)勢,然后介紹如何在Spring Boot項(xiàng)目中集成Netty,包括詳細(xì)的使用流程和步驟,以及帶有注釋的代碼示例。通過本文,

    2024年02月22日
    瀏覽(19)
  • Spring Boot 4.0:構(gòu)建云原生Java應(yīng)用的前沿工具

    Spring Boot 4.0:構(gòu)建云原生Java應(yīng)用的前沿工具

    目錄 ?前言 Spring Boot簡介? Spring Boot 的新特性? 1. 支持JDK 17 2. 集成云原生組件? 3. 響應(yīng)式編程支持? 4. 更強(qiáng)大的安全性? 5. 更簡化的配置? ?Spring Boot 的應(yīng)用場景 1. 云原生應(yīng)用開發(fā) 2. 響應(yīng)式應(yīng)用程序? 3. 安全性要求高的應(yīng)用? 4. JDK 17的應(yīng)用? 總結(jié)? ??作者簡介: ?懶大王敲

    2024年01月23日
    瀏覽(43)
  • “深入了解Spring Boot:構(gòu)建高效、可擴(kuò)展的Java應(yīng)用程序“

    標(biāo)題:深入了解Spring Boot:構(gòu)建高效、可擴(kuò)展的Java應(yīng)用程序 摘要:Spring Boot是一款快速構(gòu)建Java應(yīng)用程序的開發(fā)框架,它基于Spring框架,提供了一系列的自動化配置和約定,使得開發(fā)者能夠更快速、更高效地構(gòu)建出高質(zhì)量的應(yīng)用程序。本文將深入探討Spring Boot的核心特性和使用

    2024年02月14日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包