成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java 開發(fā)人員應該知道的五大 Spring Boot 特性

開發(fā) 架構
您可能聽說過 Spring Boot,它的神奇力量是創(chuàng)建一個不到 140 個字符的 Spring Web 應用程序,可以寫在一條推文中,但這究竟意味著什么?

您可能聽說過 Spring Boot,它的神奇力量是創(chuàng)建一個不到 140 個字符的 Spring Web 應用程序,可以寫在一條推文中,但這究竟意味著什么?是什么特性為 Spring Boot 提供了如此強大的功能并使 Spring 應用程序開發(fā)如此簡單?好吧,這就是您將在本文中學習的內容,但是如果您趕時間,讓我告訴您,您將詳細了解 Spring Boot 的自動配置、Starter 依賴項、Spring Boot CLI、Actuator 和 Spring Initializer 功能。這些特性消除了與編寫基于 Spring 的 Java Web 應用程序相關的大部分痛苦和摩擦。

但是,在進入這個細節(jié)之前,讓我們重新審視一下與基于 Spring 的 Java 開發(fā)相關的問題。我個人喜歡在享受解決方案之前先看到問題并感受它。請記住,只有在努力工作后才會感到舒適,用餐也是如此,當您餓了時,您會更享受。

Spring 無疑是一個很棒的框架,它為你做了很多事情,例如它為你創(chuàng)建了一個對象,它為它們提供了它們的依賴關系,如果 Spring 不存在,它會帶走你編寫的大量代碼,但作為回報它在配置和學習方面也對你提出了很多要求。

如果您曾經(jīng)在一個新建項目中工作過,并且您從頭開始創(chuàng)建一個全新的基于 Spring 的 Java 應用程序,那么您就會知道這不是小菜一碟。您首先需要找到所需的所有依賴項,然后找到它們的兼容版本。您還需要配置很多 bean 來啟用一些 Spring 魔法。

例如,如果你想創(chuàng)建一個 基于 Spring MVC 的 REST 應用程序,它支持嵌入式 tomcat 中的 JSON 格式,那么你的 Maven pom.xml 文件中至少有 8 到 10 個依賴項,例如 spring-core.jar、spring-mvc.jar、 jackson.jar、embedded-tomcat.jar 等,請注意這是一個非常簡單的設置。

Spring Boot 只是消除了所有這些痛苦,讓您編寫重要的代碼,即應用程序代碼。我提到的所有 Spring Boot 特性,例如自動配置、Starter POM 或 Starter 依賴項以及 Spring Boot CLI 旨在簡化使用 Spring 的 Java 開發(fā)。

現(xiàn)在,讓我們更詳細地了解這些功能中的每一個

1、 自動配置

您可能使用過基于 Spring 的 Java Web 應用程序,該應用程序連接到關系數(shù)據(jù)庫,例如像 H2 這樣的內存數(shù)據(jù)庫,如果是,那么您可能知道您需要聲明JdbcTemplate為 bean,并且還需要配置一個 DataSource,它是JdbcTempalte 的依賴項。

在使用基于 Java 的現(xiàn)代 Spring 應用程序中configuration,您需要將以下兩個方法添加到您的

Configuration 類中:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">@豆</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
公共 JdbcTemplate jdbcTempalte(DateSource ds){</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
返回新的 JdbcTempalte(ds);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
}</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
@豆</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
公共數(shù)據(jù)源數(shù)據(jù)源(){</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
返回新的 EmbeddedDatabaseBuilder()</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
.setType(EmbeddedDatabaseType.H2)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
.addScripts('ddl.sql', 'data.sql')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
。建造();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
}</font></font>

對于做過 Spring 開發(fā)的人來說,這并不是一個復雜的問題,但是如果您重新開始,那么可能需要數(shù)小時和數(shù)天才能弄清楚這一點。

但是,更重要的是,這是我們許多人編寫的一段代碼,與我們的應用程序無關。我的意思是,這段代碼不是唯一的,每個使用 JDBC 的 Spring 應用程序都需要它。

這就是 Spring Boot AutoConfiguration 發(fā)揮作用的地方。它會檢測類路徑中是否存在某個類,然后自動為您配置它。

例如,如果您已經(jīng)添加JdbcTempalte到類路徑和 H2.jar 中,那么 Spring Boot 可以自動為您配置一個內存數(shù)據(jù)庫和一個可以使用的 JdbcTempatle。您無需編寫上述代碼即可JdbcTemplate在 DAO 層中使用。

這只是一個例子。Spring Boot 自動配置做出了 200 多個這樣的決定,并通過檢查 JAR 依賴關系自動配置許多功能。例如,如果 spring-mvc.jar 存在,那么它可以自動配置 DispatcherServlet、 InternalViewResolver等。

如果存在 JPA 和 Hibernate,那么它也可以配置它,如果你有 spring-security.jar,那么它甚至可以配置一個基本的安全性來保護你的應用程序。

順便說一句,在依賴自動配置時,需要深入了解才能正確保護您的應用程序。

默認情況下,自動配置功能處于禁用狀態(tài),您需要通過在配置類上使用@EnableAutoConfiguration或@SpringBootApplication注釋來啟用它。我通常注釋 Main 類,我將使用嵌入式 Tomcat 服務器運行該類。

建議@SpringBootApplication從 Spring Boot 1.2 開始使用注解,因為它結合了其他幾個注解以使您的代碼更具可讀性。

簡而言之,Spring Boot 的自動配置功能節(jié)省了大量工作并減少了開發(fā)時間,我強烈建議您在使用 Spring Boot 時使用自動配置。

2、 入門 POM

雖然 AutoConfiguration 消除了配置通用功能的痛苦,但 Starter POM 通過在項目中查找和添加通用依賴項來消除痛苦。

為了構建一個簡單的基于 Spring MVC 的支持 Jackson的 REST 應用程序并運行它一個嵌入式容器,您至少需要以下依賴項,例如

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">spring-core.jar</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
spring-web.jar</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
spring-webmvc.jar</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
杰克遜-databind.jar</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
tomcat-embed-core.jar</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
tomcat-embed-el.jar</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
tomcat-embed-logging-juil.jar</font></font>

通過使用 Spring Boot Starter POM 或 starter 依賴功能,您只需在 pom.xml 中添加 spring-boot-starter-web 依賴即可獲得所有這些

因此,無需添加所有這些依賴項并擔心它們的兼容版本,您只需添加一個即可。您還將更有信心使用經(jīng)過嘗試和測試的庫版本,并且將來不會出現(xiàn)任何不兼容問題。

啟動 POM 功能的另一個微妙好處是您不需要記住或搜索依賴項。如果您正在構建 web 應用程序,您可以添加一個“web”啟動器,如果您正在構建

JPA 應用程序,您可以添加“jpa”啟動器,通過按功能聚合常見的依賴項 Spring Boot 使它們易于記憶和使用。

順便說一句,如果您想知道 Starter POM 功能在內部是如何工作的,那么讓我告訴您所有的魔法都來自 Maven 或 Gradle 的傳遞依賴功能。提取正確版本的庫的是 Maven 或 Gradle,Starter POM 只需聲明它們。如果您想了解更多信息,我建議您查看 Dan Vega 的 Spring Boot 快速應用程序開發(fā)課程。

簡而言之,Starter POM 或 starter 依賴是 Spring Boot 的另一個很棒的特性,它確實有助于簡化 Spring 應用程序的開發(fā)。它就像自動配置的近親,你會經(jīng)常一起使用它們。

3、 Spring Boot CLI

在本文的第一段中,我說過現(xiàn)在可以創(chuàng)建一個適合推文的 Java Web 應用程序,這得益于 Groovy 和 Spring Boot CLI。

Spring Boot CLI 是 Spring Boot 框架提供的命令行界面,它允許您使用 Groovy 編程語言創(chuàng)建基于 Spring 的 Web 應用程序。實際上,Groovy 和 Spring Boot 很好地互補,Groovy 旨在使 Java 開發(fā)更簡單,而 Spring Boot 旨在使 Spring 應用程序開發(fā)更簡單,并且都從彼此的簡單性中受益。

雖然自動配置和啟動器依賴項是 Spring Boot 的一個組成部分,但 Spring CLI 是一個可選功能,您還需要安裝 Spring CLI 才能使用它。

這是 Groovy 和 Spring Boot CLI 中的一個簡單的 HelloWorld RESTful Web 服務,即使不編譯也可以運行,如下所示:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">@RestController</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
HelloSpringBootController{</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
@RequestMapping("/")</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
定義你好(){</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
返回“你好 Spring Boot CLI”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
}</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
}</font></font>

就是這樣,您可以在 Spring Boot CLI 附帶的嵌入式容器上運行它,無需 web.xml,無需配置,也無需服務器設置。

如果您想知道這些整體是如何工作的,即 Groovy 是如何知道 @RestController和@RequestMapping注釋的,那么讓我告訴您 Spring Boot CLI 利用自動配置和啟動 POM 功能讓您只專注于編寫應用程序代碼?

Spring Boot CLI 檢測到@RestController并@RequestMapping正在使用它,它知道需要將哪些啟動器依賴項添加到類路徑中才能使其工作。

一旦下載了這一系列依賴項,自動配置就會自動啟動并配置它以供使用,例如,一旦 spring-boot-web-starter 進入圖片,它就會下載 spring-mvc.jar,然后自動配置會自動配置 DispatcherServlet并啟用春天MVC。

這整個事情看起來像魔術,但它是一個現(xiàn)實。

4、執(zhí)行器

執(zhí)行器是 Spring Boot 的另一個很棒的功能,它允許查看正在運行的 Spring Boot 應用程序中發(fā)生的事情。憑借其自動配置的所有優(yōu)點,存在不知道應用程序內部內容的風險,而 Spring Actuator 解決了該風險。

它提供了很多關于生產(chǎn)中正在運行的應用程序的見解和指標。例如,通過使用 Actuator,您可以準確了解在應用程序上下文中配置了哪些 bean,做出了哪些自動配置決策,應用程序可以使用哪些環(huán)境變量、系統(tǒng)屬性、命令行參數(shù)等等。

您甚至可以跟蹤應用程序處理的 HTTP 請求,以及各種有用的應用程序指標,例如 CPU 和內存使用情況、垃圾收集詳細信息、Web 請求和數(shù)據(jù)源使用情況。

Spring Boot Actuator 還提供了幾個端點來檢索這些數(shù)據(jù),例如,您可以使用 RESTful API 獲取所有這些信息,或者您可以使用其遠程 shell 功能安全地進入應用程序并通過發(fā)出命令獲取所有這些信息。

它還使用 JMX MBean 公開了所有這些功能,這意味著您可以在運行時使用 JConsole 之類的 JMX 客戶端來控制它們。

同時,您還需要保護對 Actuator 端點的訪問,因為它不僅會暴露機密信息,而且很危險。例如,任何人都可以使用 /shutdown 端點來停止您的應用程序。

不過,您不必擔心。與任何其他 Spring 應用程序一樣,您可以使用 Spring Security 來保護 Actuator 端點。

5、 Spring Boot 初始化器

Spring Initializer 是 Spring Boot 的另一個特性,它解決了項目結構方面的問題。它是一個 Web 應用程序,允許您使用 Java、Kotline 或 Groovy 和 Spring Boot 生成 Maven 或 Gradle 項目。

您需要指定的只是在 GUI 中提供項目元數(shù)據(jù),例如項目名稱、組、工件等。它還允許您從大列表中選擇啟動器依賴項,例如 web、JPA 或安全啟動器。

Spring Initializer 項目可以在 https://start.spring.io/ 訪問。創(chuàng)建項目后,您可以下載 Zip 文件,然后打開 IDE,如 Eclipse 或 IntelliJ IDEA,如 Nelson Djalo 的 Spring Boot Essential 課程中所述。然后,您可以編輯此示例項目以放置您的代碼。

根據(jù)我的經(jīng)驗,許多 Java 和 Spring 開發(fā)人員面臨的常見問題之一是啟動項目。他們中的許多人對是否放置您的 Java 文件、資源文件等一無所知。

雖然 Maven、Gradle、 IntelliJ IDEA和 Eclipse可以幫助您提供基本結構,但您仍然需要精通這兩項技能才能搶占先機,如果您不熟悉 Maven 或您的 IDE,那可能是一場噩夢。

Spring Boot Initaizer 解決了這個問題,讓創(chuàng)建基于 Spring 的 Java 應用程序變得容易,而無需真正了解 Spring 框架的大量內部細節(jié)。

這就是 Java 開發(fā)人員應該知道的 Spring Boot 的一些基本特性。這些特性確實使使用 Java 和 Spring 變得有趣和高效,這就是為什么越來越多的公司采用 Spring Boot 進行 Java 開發(fā)。具有 Spring Boot 經(jīng)驗的 Java 開發(fā)人員也很受歡迎,如果您正在尋找作為 Java Web 開發(fā)人員的下一份工作,那么 Spring Boot 技能真的可以發(fā)揮作用。

責任編輯:姜華 來源: 今日頭條
相關推薦

2015-03-11 09:55:12

2011-07-10 15:18:11

開發(fā)

2013-01-28 10:25:46

開發(fā)人員設計技巧

2010-10-27 09:33:18

MVC開發(fā)

2020-09-22 12:19:25

JavaGithub倉庫

2009-09-10 14:18:03

PHP庫

2012-06-13 01:37:40

JSPJava

2023-03-08 15:13:32

Git工具開發(fā)

2019-07-19 11:27:42

Java程序員技術

2013-01-10 10:30:36

云開發(fā)

2023-04-07 16:11:56

前端開發(fā)

2020-01-27 16:28:57

開發(fā)命令遠程服務器

2017-10-11 13:20:56

Linux命令工程師

2022-09-12 15:51:38

JavaScrip開發(fā)編程語言

2024-11-08 15:22:08

2009-01-11 10:18:46

腳本語言F#Groovy

2017-02-24 19:10:45

C#開發(fā)人員

2022-12-16 08:14:00

2023-10-26 16:56:24

2023-01-12 08:33:06

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99热在线免费 | 黄色大片视频 | 免费观看国产视频在线 | 国产成人精品一区二区三区网站观看 | 99精品国产一区二区青青牛奶 | 久久精品视频9 | 亚洲一区二区高清 | av网站在线播放 | 毛片免费视频 | 91大神在线资源观看无广告 | 色综合久久久久 | 久久精品国产久精国产 | 亚洲一区电影 | 一本大道久久a久久精二百 欧洲一区二区三区 | 久久久男人的天堂 | 精品久久久久一区 | 中文日本在线 | 久久免费看 | 色婷婷久久久久swag精品 | 中文字幕精品一区 | 精品亚洲第一 | 亚洲啪啪 | 综合久久一区 | 九九热精品在线视频 | 日韩电影在线一区 | 爱草在线| 国产97色 | 久久国产欧美日韩精品 | 成人精品免费视频 | 91av视频在线观看 | 国产精品久久久 | 国产精品有限公司 | 欧美猛交| 看av在线| 亚洲二区视频 | 亚洲精品国产成人 | 精品一区二区三区在线观看 | 一区二区三区在线播放视频 | 毛片免费视频 | 久久精品二区 | 亚洲天堂影院 |