国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot 參考指南(開發者工具)

APICloud / 1481人閱讀

摘要:觸發器文件可以手動更新,也可以使用插件進行更新。例如,要配置重新啟動以始終使用觸發器文件,你需要添加以下屬性遠程應用程序開發工具并不局限于本地開發,在遠程運行應用程序時,還可以使用幾個特性。

20. 開發者工具

Spring Boot包括一組額外的工具,這些工具可以使應用程序開發體驗變得更加愉快,spring-boot-devtools模塊可以包含在任何項目中,以提供額外的development-time特性,要包含devtools支持,請將模塊依賴項添加到你的構建中,如下所示的Maven和Gradle列表:

Maven.


  
    org.springframework.boot 
    spring-boot-devtools 
    true
  

Gradle.

dependencies { 
  compile("org.springframework.boot:spring-boot-devtools")
}
在運行完全打包的應用程序時,開發工具會自動被禁用,如果你的應用程序是從java -jar啟動的,或者是從一個特殊的類加載器開始的,那么它就被認為是一個“生產應用程序”。將依賴項標記為Maven中的可選項或使用compileOnly在Gradle中是一種最佳實踐,它可以防止devtools被傳遞到其他使用你的項目的模塊中。
默認情況下,重新打包的存檔不包含devtools,如果你想要使用某些遠程devtools特性,你需要禁用該excludeDevtools構建屬性來包含它,該屬性同時支持Maven和Gradle插件。
20.1 屬性默認值

Spring Boot所支持的幾個庫都使用緩存來提高性能。例如,模板引擎緩存已編譯的模板以避免重復解析模板文件。另外,Spring MVC可以在提供靜態資源時向響應添加HTTP緩存標頭。

雖然緩存在生產中非常有益,但在開發過程中可能會產生相反的效果,使你無法看到你在應用程序中所做的更改。出于這個原因,spring-boot-devtools在默認情況下禁用了緩存選項。

緩存選項通常由application.properties文件中的設置配置,例如,Thymeleaf提供了spring.thymeleaf.cache屬性,spring-boot-devtools模塊不需要手動設置這些屬性,而是自動應用合理的development-time配置。

有關devtools應用的屬性的完整列表,請參見DevToolsPropertyDefaultsPostProcessor。
20.2 自動重啟

當類路徑上的文件發生更改時,使用spring-boot-devtools的應用程序將自動重新啟動,當在IDE中工作時,這可能是一個有用的特性,因為它為代碼更改提供了非常快速的反饋循環。默認情況下,類路徑中指向文件夾的任何條目都會被監控是否有更改,請注意,某些資源(如靜態資產和視圖模板)不需要重新啟動應用程序。

引發重啟

當DevTools監視類路徑資源時,觸發重啟的惟一方法是更新類路徑,導致類路徑更新的方式取決于你使用的IDE。在Eclipse中,保存修改后的文件會導致類路徑被更新并觸發重新啟動,在IntelliJ IDEA中,構建項目(Build -> Build Project)具有相同的效果。

只要啟用了forking,你就可以使用支持的構建插件(Maven和Gradle)來啟動應用程序,因為DevTools需要一個獨立的應用程序類加載器才能正常運行。默認情況下,Gradle和Maven在類路徑上檢測DevTools時是這樣做的。
當與LiveReload一起使用時,自動重啟非常有效。詳情請參閱LiveReload部分。如果你使用JRebel,自動重新啟動將被禁用,以支持動態類重載。其他devtools特性(如LiveReload和property overrides)仍然可以使用。
在重新啟動時,DevTools依賴于應用程序上下文的shutdown hook關閉它,如果你已經禁用了shutdown hook(SpringApplication.setRegisterShutdownHook(false)),那么它將無法正常工作。
當決定是否在類路徑上的條目發生更改時觸發重啟時,DevTools自動忽略了名為spring-bootspring-boot-DevToolsspring-boot-autoconfigurespring-boot-actuatorspring-boot-starter的項目。
DevTools需要定制被ApplicationContext使用的ResourceLoader,如果你的應用程序已經提供了一個,它將被包裝,不支持在ApplicationContext上直接覆蓋getResource方法。
重啟和重新加載

Spring Boot提供的重啟技術使用兩個類加載器。不改變的類(例如,來自第三方jar的類)被加載到一個基類加載器中,正在積極開發的類被加載到重啟類加載器中,當應用程序重新啟動時,重啟類加載器將被丟棄,并創建一個新的類加載器。這種方法意味著應用程序重新啟動通常要比“冷啟動”快得多,因為基類加載器已經可用并填充了。

如果發現重新啟動對應用程序來說不夠快,或者遇到了類加載問題,你可以考慮重新加載技術,如零周轉期的JRebel,這些工作通過在加載類時重寫類,使它們更易于重新加載。

20.2.1 日志記錄條件評估中的改變

默認情況下,每次應用程序重新啟動時,都會記錄顯示狀態評估增量的報告。報告顯示了在進行更改(如添加或刪除bean和設置配置屬性)時對應用程序的自動配置的更改。

若要禁用報告的日志記錄,請設置以下屬性:

spring.devtools.restart.log-condition-evaluation-delta=false
20.2.2 排除資源

某些資源在更改時不一定需要觸發重新啟動,例如,Thymeleaf模板可以就地編輯,默認情況下,改變/META-INF/maven/META-INF/resources/resources/static/public,或/templates的資源不會觸發重新啟動,但會觸發重新加載。如果你想定制這些排除性,你可以使用spring.devtools.restart.exclude屬性,例如,僅排除/static/public,你將設置以下屬性:

 spring.devtools.restart.exclude=static/**,public/**
如果你想要保留這些默認值并添加額外的排除,請使用spring.devtools.restart.additional-exclude屬性代替。
20.2.3 監視附加路徑

當你對不在類路徑上的文件進行更改時,你可能希望你的應用程序重新啟動或重新加載。可以這樣做,使用spring.devtools.restart.additional-paths屬性來配置額外的路徑以監視更改,你可以使用前面描述的spring.devtools.restart.exclude屬性來控制在附加路徑下的更改是否會觸發完全重啟或重新加載。

20.2.4 禁用重啟

如果你不想使用重啟功能,你可以使用spring.devtools.restart.enabled屬性禁用它。在大多數情況下,你可以在application.properties中設置此屬性。(這樣做仍然初始化重啟類加載器,但它不注意文件的更改)。

如果你需要完全禁用重新啟動支持(例如,因為它不能與特定的庫一起工作),那么你需要設置spring.devtools.restart.enabled System屬性為false,然后調用SpringApplication.run(…),如下例所示:

public static void main(String[] args) { 
  System.setProperty("spring.devtools.restart.enabled", "false"); 
  SpringApplication.run(MyApp.class, args);
}
20.2.5 使用觸發器文件

如果你使用一個持續編譯已更改文件的IDE,你可能只需要在特定的時間觸發重新啟動,為此,你可以使用一個“觸發文件”,它是一個特殊的文件,當你想要實際觸發重新啟動檢查時,必須對其進行修改。更改文件只會觸發檢查,只有當Devtools檢測到它必須做某事時才會重新啟動。觸發器文件可以手動更新,也可以使用IDE插件進行更新。

要使用一個觸發器文件,請將spring.devtools.restart.trigger-file屬性設置為觸發器文件的路徑。

你可能想要設置spring.devtools.restart.trigger-file作為全局設置,以便所有的項目都以相同的方式運行。
20.2.6 自定義重啟類加載器

如前所述,在重啟與重載部分中,重新啟動功能是通過使用兩個類加載器實現的,對于大多數應用程序來說,這種方法運行良好。然而,它有時會導致類加載問題。

默認情況下,IDE中的任何開放項目都包含“重啟”類加載器,任何常規的.jar文件都裝載了“基礎”類加載器,如果你在一個多模塊項目中工作,而不是每個模塊都導入到你的IDE中,你可能需要定制一些東西。為此,你可以創建一個META-INF/spring-devtools.properties文件。

spring-devtools.properties可以包含有restart.excluderestart.include的屬性,include元素是應該被拉到“重啟”類加載器中的項,而exclude元素則是應該被推入“基礎”類加載器的項,屬性的值是應用于類路徑的regex模式,如下例所示:

restart.exclude.companycommonlibs=/mycorp-common-[w-]+.jar restart.include.projectcommon=/mycorp-myproj-[w-]+.jar
所有屬性鍵必須是唯一的,只有屬性以restart.include.restart.exclude.開頭才被認可。
所有類路徑下的META-INF/spring-devtools.properties被加載,你可以在項目中或項目使用的庫中打包文件。
20.2.7 已知的限制

通過使用標準ObjectInputStream來反序列化的對象,重新啟動功能不會很好地工作,如果需要反序列化數據,可能需要使用Spring的ConfigurableObjectInputStreamThread.currentThread().getcontextclassloader()

不幸的是,一些第三方庫在不考慮上下文類加載器的情況下反序列化。如果你發現這樣的問題,你需要向原始作者請求修復。

20.3 LiveReload

spring-boot-devtools模塊包含一個嵌入式的LiveReload服務器,當資源被更改時,它可以用來觸發瀏覽器刷新。LiveReload瀏覽器擴展可以從livereload.com免費提供給Chrome、Firefox和Safari。

如果你不想在應用程序運行時啟動LiveReload服務器,則可以設置spring.devtools.livereload.enabled屬性為false

你一次只能運行一個LiveReload服務器,在啟動應用程序之前,確保沒有其他的LiveReload服務器在運行。如果你在IDE中啟動多個應用程序,那么只有第一個應用程序得到了LiveReload的支持。
20.4 全局設置

你可以通過添加名為.spring-boot-devtools.properties的文件來配置全局devtools設置到$HOME文件夾(注意文件名以“.”開頭)。添加到該文件的任何屬性都適用于使用devtools的機器上的所有Spring Boot應用程序。例如,要配置重新啟動以始終使用觸發器文件,你需要添加以下屬性:

~/.spring-boot-devtools.properties.

spring.devtools.reload.trigger-file=.reloadtrigger
20.5.遠程應用程序

Spring Boot開發工具并不局限于本地開發,在遠程運行應用程序時,還可以使用幾個特性。遠程支持是可選的,要啟用它,你需要確保將devtools包含在重新打包的歸檔文件中,如下面的清單所示:


 
   
     org.springframework.boot 
     spring-boot-maven-plugin 
     
       false 
     
   
 

然后你需要設置spring.devtools.remote.secret屬性,如下面的示例所示:

spring.devtools.remote.secret=mysecret
在遠程應用程序上啟用spring-boot-devtools是一種安全風險,你不應該在生產部署上啟用支持。

遠程devtools支持分兩部分提供:一個服務器端端點接受連接,一個客戶端應用程序在IDE中運行。當spring.devtools.remote.secret屬性被設置時,服務器組件自動啟用,客戶端組件必須手動啟動。

20.5.1 運行遠程客戶端應用程序

遠程客戶端應用程序設計為從你的IDE中運行,你需要運行org.springframework.boot.devtools.RemoteSpringApplication與你連接到的遠程項目相同的類路徑,應用程序的唯一必需參數是它連接的遠程URL。

例如,如果你正在使用Eclipse或STS,并且你有一個名為my-app的項目,你已經部署到Cloud Foundry,那么你將執行以下操作:

Run菜單選擇Run Configurations…?

創建一個新的Java Application“launch configuration”。

瀏覽my-app項目。

使用org.springframework.boot.devtools.RemoteSpringApplication作為主類。

添加https://myapp.cfapps.ioProgram arguments(或任何遠程URL)。

正在運行的遠程客戶端可能類似于以下清單:

  .   ____          _
 / / ___"_ __ _ _(_)_ __  __ _
( ( )\___ | "_ | "_| | "_ / _` |
 /  ___)| |_)| | | | | || (_| []::::::[]   / -_) "
                         __ _ _
___               _         
| _ \___ _ __
  ___| |_ ___    
/ _   _/ -_) ) ) ) )
  "  |____| .__|_| |_|_| |_\__, |        |_|_\___|_|_|_\___/\__\___|/ / / /
 =========|_|==============|___/===================================/_/_/_/
 :: Spring Boot Remote :: 2.0.5.RELEASE
2015-06-10 18:25:06.632  INFO 14938 --- [main] o.s.b.devtools.RemoteSpringApplication :
 Starting RemoteSpringApplication on pwmbp with PID 14938 (/Users/pwebb/projects/spring-boot/code/
spring-boot-devtools/target/classes started by pwebb in /Users/pwebb/projects/spring-boot/code/
spring-boot-samples/spring-boot-sample-devtools)
2015-06-10 18:25:06.671  INFO 14938 --- [main] s.c.a.AnnotationConfigApplicationContext :
 Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@2a17b7b6: 
startup date [Wed Jun 10 18:25:06 PDT 2015]; root of context hierarchy
2015-06-10 18:25:07.043  WARN 14938 --- [main] o.s.b.d.r.c.RemoteClientConfiguration : The
 connection to http://localhost:8080 is insecure. You should use a URL starting with "https://".
2015-06-10 18:25:07.074  INFO 14938 --- [main] o.s.b.d.a.OptionalLiveReloadServer :
 LiveReload server is running on port 35729
2015-06-10 18:25:07.130  INFO 14938 --- [main] o.s.b.devtools.RemoteSpringApplication :
 Started RemoteSpringApplication in 0.74 seconds (JVM running for 1.105)
因為遠程客戶端使用與實際應用程序相同的類路徑,它可以直接讀取應用程序屬性。這是spring.devtools.remote.secret屬性被讀取并傳遞給服務器進行身份驗證的方法。
使用https://作為連接協議總是明智的,這樣就可以加密傳輸并不能截獲密碼。
如果需要使用代理訪問遠程應用程序,請配置spring.devtools.remote.proxy.hostspring.devtools.remote.proxy.port屬性。
20.5.2 遠程更新

遠程客戶端監控你的應用程序類路徑,以與本地重啟相同的方式進行更改。任何更新的資源都被推送到遠程應用程序,并且(如果需要的話)觸發重啟。如果你在一個使用不是本地的云服務的特性上進行迭代,這將是很有幫助的。一般來說,遠程更新和重新啟動比完整的重建和部署周期要快得多。

文件只在遠程客戶機運行時受到監視,如果在啟動遠程客戶端之前更改一個文件,則不會將其推送到遠程服務器。
21.為生產打包你的應用程序

可執行jar可以用于生產部署,由于它們是自包含的,所以它們也非常適合基于云的部署。

對于額外的“生產就緒”特性,如健康、審計和指標REST或JMX端點,考慮添加spring-boot-actuator,參見第V部分,“Spring Boot Actuator:生產就緒特性”的詳細信息。

22.下一步要讀什么

現在你應該了解了如何使用Spring Boot和你應該遵循的一些最佳實踐,現在,你可以深入了解特定的Spring Boot特性,或者你可以跳過,閱讀Spring Boot的“生產就緒”方面的內容。

上一篇:運行你的應用程序 下一篇:SpringApplication

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69524.html

相關文章

  • Spring Boot 參考指南(目錄)

    摘要:參考指南使你可以輕松地創建可運行的獨立的生產級的基于的應用程序,我們對平臺和第三方庫有自己的看法,這樣你就可以以最低限度工作開始了,大多數應用程序都需要很少的配置。文檔本節簡要概述了參考文檔,它充當文檔其余部分的映射。 Spring Boot 參考指南 Spring Boot使你可以輕松地創建可運行的獨立的、生產級的基于Spring的應用程序,我們對Spring平臺和第三方庫有自己的看...

    awesome23 評論0 收藏0
  • Spring Boot 參考指南Spring Boot文檔)

    摘要:關于文檔參考指南可用如下方式最新的副本可以在中找到。嘗試操作文檔,它們為最常見的問題提供解決方案。學習基礎,構建在許多其他項目上,網站提供豐富的參考文檔,如果你要從開始,嘗試其中一個指南。我們對進行監視,以解決帶有標記的問題。 1. 關于文檔 Spring Boot 參考指南可用如下方式: HTML PDF EPUB 最新的副本可以在 docs.spring.io/spring-b...

    zhjx922 評論0 收藏0
  • Spring Boot 參考指南(安裝 Spring Boot

    摘要:安裝可以與經典開發工具一起使用,也可以作為命令行工具安裝。下面的示例展示了一個典型的文件安裝命令行接口是一個命令行工具,你可以使用它來快速地實現的原型。 10. 安裝Spring Boot Spring Boot可以與經典Java開發工具一起使用,也可以作為命令行工具安裝。無論哪種方式,都需要Java SDK v1.8或更高版本。在開始之前,你應該使用以下命令檢查當前的Java安裝: ...

    Donald 評論0 收藏0
  • Spring Boot 參考指南Spring Boot介紹)

    摘要:我們的主要目標是為所有開發提供一個非常快的廣泛可訪問的入門體驗。要跳出固有的思維模式,但是當需求開始偏離默認設置時,要迅速避開。提供大型項目如嵌入式服務器安全性指標健康檢查和外部化配置所共有的一系列非功能特性。系統要求需要或和或以上。 8. Spring Boot介紹 Spring Boot使你可以輕松地創建可運行的獨立的、生產級的基于Spring的應用程序,我們對Spring平臺和第...

    GraphQuery 評論0 收藏0
  • Spring Boot 參考指南(運行你的應用程序)

    摘要:從運行你可以從運行應用程序作為簡單的應用程序,但是,你首先需要導入你的項目,導入步驟取決于你的和構建系統。如果你不小心運行了兩次應用程序,你你會看到一個錯誤,用戶可以使用按鈕而不是按鈕來確保任何現有實例都已關閉。 19. 運行你的應用程序 將你的應用程序打包為jar并使用嵌入式HTTP服務器的最大優點之一是,你可以像對待其他應用程序一樣運行應用程序,調試Spring Boot應用程序也...

    JayChen 評論0 收藏0
  • Spring Boot 參考指南(安裝CLI)

    摘要:安裝可以使用手動安裝命令行接口或如果你是用戶,可以使用或。有關全面的安裝說明,請參閱開始部分中的第節,安裝。推斷抓取依賴項標準包含一個注解,它允許你聲明對第三方庫的依賴關系,這個有用的技術讓可以像或那樣下載,但不需要你使用構建工具。 第VII章. Spring Boot CLI 如果你想快速開發Spring應用程序,可以使用Spring Boot CLI命令行工具,它允許你運行Groo...

    Moxmi 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<