日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java開發(fā)人員應(yīng)該知道的五大SpringBoot特性

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

目前創(chuàng)新互聯(lián)公司已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、克井網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

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

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

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

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

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

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

1、 自動(dòng)配置

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

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

Configuration 類中:

@豆
公共 JdbcTemplate jdbcTempalte(DateSource ds){

返回新的 JdbcTempalte(ds);

}


@豆

公共數(shù)據(jù)源數(shù)據(jù)源(){

返回新的 EmbeddedDatabaseBuilder()

.setType(EmbeddedDatabaseType.H2)

.addScripts('ddl.sql', 'data.sql')

。建造();

}

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

但是,更重要的是,這是我們?cè)S多人編寫的一段代碼,與我們的應(yīng)用程序無關(guān)。我的意思是,這段代碼不是唯一的,每個(gè)使用 JDBC 的 Spring 應(yīng)用程序都需要它。

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

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

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

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

順便說一句,在依賴自動(dòng)配置時(shí),需要深入了解才能正確保護(hù)您的應(yīng)用程序。

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

建議@SpringBootApplication從 Spring Boot 1.2 開始使用注解,因?yàn)樗Y(jié)合了其他幾個(gè)注解以使您的代碼更具可讀性。

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

2、 入門 POM

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

為了構(gòu)建一個(gè)簡單的基于 Spring MVC 的支持 Jackson的 REST 應(yīng)用程序并運(yùn)行它一個(gè)嵌入式容器,您至少需要以下依賴項(xiàng),例如

spring-core.jar
spring-web.jar

spring-webmvc.jar

杰克遜-databind.jar

tomcat-embed-core.jar

tomcat-embed-el.jar

tomcat-embed-logging-juil.jar

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

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

啟動(dòng) POM 功能的另一個(gè)微妙好處是您不需要記住或搜索依賴項(xiàng)。如果您正在構(gòu)建 web 應(yīng)用程序,您可以添加一個(gè)“web”啟動(dòng)器,如果您正在構(gòu)建

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

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

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

3、 Spring Boot CLI

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

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

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

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

@RestController
類 HelloSpringBootController{


@RequestMapping("/")

定義你好(){

返回“你好 Spring Boot CLI”

}

}

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

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

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

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

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

4、執(zhí)行器

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

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

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

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

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

同時(shí),您還需要保護(hù)對(duì) Actuator 端點(diǎn)的訪問,因?yàn)樗粌H會(huì)暴露機(jī)密信息,而且很危險(xiǎn)。例如,任何人都可以使用 /shutdown 端點(diǎn)來停止您的應(yīng)用程序。

不過,您不必?fù)?dān)心。與任何其他 Spring 應(yīng)用程序一樣,您可以使用 Spring Security 來保護(hù) Actuator 端點(diǎn)。

5、 Spring Boot 初始化器

Spring Initializer 是 Spring Boot 的另一個(gè)特性,它解決了項(xiàng)目結(jié)構(gòu)方面的問題。它是一個(gè) Web 應(yīng)用程序,允許您使用 Java、Kotline 或 Groovy 和 Spring Boot 生成 Maven 或 Gradle 項(xiàng)目。

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

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

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

雖然 Maven、Gradle、 IntelliJ IDEA和 Eclipse可以幫助您提供基本結(jié)構(gòu),但您仍然需要精通這兩項(xiàng)技能才能搶占先機(jī),如果您不熟悉 Maven 或您的 IDE,那可能是一場噩夢(mèng)。

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

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


網(wǎng)頁標(biāo)題:Java開發(fā)人員應(yīng)該知道的五大SpringBoot特性
URL標(biāo)題:http://www.5511xx.com/article/dhesdhg.html