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

Spring Boot自動化配置的利弊及解決之道

運維 自動化
在Spring Boot基礎教程系列文章中,我們通過各種功能性示例體驗了Spring Boot的自動化配置給我們所帶來的超便利的新開發方式。

[[194924]]

Spring Boot中的雙刃劍:自動化配置

在Spring Boot基礎教程系列文章中,我們通過各種功能性示例體驗了Spring Boot的自動化配置給我們所帶來的超便利的新開發方式。但是,在一些情況下Spring Boot的自動化配置也會給我們惹來不少的麻煩,比如這些場景:

  • 項目依賴復雜的情況下,由于依賴方的依賴組織不夠嚴格,可能引入了一些實際我們不需要的依賴,從而導致我們的項目滿足一些特定的自動化配置。
  • 傳統Spring項目轉換為Spring Boot項目的過程中,由于不同的組織方式問題,引發自動化配置加載的錯誤,比如:通過xml手工組織的多數據源配置等。

上面這些原因都會導致不必要的自動化配置加載而導致應用無法啟動或觸發/health的健康檢查不通過等問題。比如,我們在改造傳統Spring項目到Spring Boot項目中碰到的一些錯誤:

  1. 六月 21, 2017 6:23:47 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads 
  2. 警告: The web application [ROOT] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 
  3.  java.lang.Object.wait(Native Method) 
  4.  java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) 
  5.  com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43) 
  6. 2017-06-21 18:23:47,230 INFO  [main] org.springframework.boot.autoconfigure.logging.AutoConfigurationReportLoggingInitializer -  
  7. Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 
  8. 2017-06-21 18:23:47,237 ERROR [main] org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter -  
  9. *************************** 
  10. APPLICATION FAILED TO START 
  11. *************************** 
  12. Description: 
  13. Cannot determine embedded database driver class for database type NONE 
  14. Action
  15. If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are currently active). 

從報錯信息中,我們就可以分析出錯誤原因是觸發了數據源的自動化配置,然而當前項目其實并不需要數據源。查其根源是依賴方提供的API依賴中引用了一些多余的依賴觸發了該自動化配置的加載。

如何解決

為了解決上面所述的問題,我們可以用兩種方法來解決:

  • 通過外部依賴的修改來解決:通過與依賴方溝通,在對方提供的API依賴中去掉不必要的依賴
  • 通過禁用指定的自動化配置來避免加載不必要的自動化配置,下面列舉了禁用的方法:

使用了@EnableAutoConfiguration的時候

  1. @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) 

使用了@SpringBootApplication的時候

  1. @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 

使用了@SpringCloudApplication的時候

  1. @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) 
  2. @SpringCloudApplication 

通過配置文件來設置   

  1. spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 

【本文為51CTO專欄作者“翟永超”的原創稿件,轉載請通過51CTO聯系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2009-05-05 14:30:19

虛擬化安全解決方案

2009-10-10 15:26:11

資產管理

2015-11-24 18:01:43

數字化醫療醫院PACS系統華為

2010-07-17 00:24:40

2018-06-08 10:45:18

云計算成本評估應用程序

2010-05-11 13:45:54

2013-08-09 09:46:32

2016-12-22 09:02:35

Linux誤刪文件

2021-03-28 21:33:07

Redis熱點key

2022-01-14 08:08:11

Java依賴沖突

2014-12-10 11:16:21

華為數字化

2011-08-18 14:23:52

Big Data

2012-02-13 10:30:18

2012-06-05 19:18:43

BYODAvayaAvaya IDE

2014-09-29 16:44:12

2023-10-18 08:12:34

Spring自動配置

2011-01-19 13:12:27

2016-11-10 18:57:19

雙十一高并發

2011-09-10 20:48:34

2022-04-21 09:26:41

FastDFS開源分布式文件系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩视频在线播放 | 91干b| 亚洲精品免费视频 | 色毛片 | 最新日韩精品 | 亚洲免费在线 | 日韩欧美一区二区三区四区 | 日日操操 | 91精品一区二区三区久久久久久 | 韩国理论电影在线 | 中文字幕免费在线 | 久久久999成人| 日韩不卡在线观看 | 古典武侠第一页久久777 | 精品一区二区在线观看 | 婷婷亚洲综合 | 久久激情视频 | 日韩一级电影免费观看 | 国产一区精品在线 | 欧美成人久久 | 欧美日韩不卡合集视频 | 欧美精品久久久 | 网色| 91在线视频免费观看 | 黄色一级毛片免费看 | 欧美无乱码久久久免费午夜一区 | 91免费高清视频 | 国产日韩精品一区 | 日本在线中文 | 精品国产色 | 日韩中文字幕在线视频 | 亚洲欧美日韩高清 | 国产精品美女www爽爽爽 | 欧美大片一区 | 亚洲精品久久久久久久久久吃药 | 欧美激情欧美激情在线五月 | 精品欧美一区二区在线观看欧美熟 | 久久精品在线 | 完全免费av在线 | 免费观看黄 | 久草欧美视频 |