Springboot 開發過程中遇到坑點 (一)
前言
之前是不會 Springboot 的,使用集中式開發,日常在學習 Java 的 Springboot 開發過程中,比如在前期開發,會容易遇到一些問題,這裡做一些記錄。
問題
1.Springboot 版本已經包含了 snakeyaml,如果依然 pom 新增 Yaml 庫 snakeyaml,啟動 Application 會遇到奇怪的錯誤。
新增了 snakeyaml 後
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.13</version>
</dependency>
會出現以下錯誤。
00:05:11.649 [main] DEBUG org.springframework.boot.context.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: [file:/C:/Program%20Files/Java/jdk1.8.0_111/jre/lib/charsets.jar 省略
00:05:11.653 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.NoSuchMethodError: org.yaml.snakeyaml.LoaderOptions.setAllowDuplicateKeys(Z)V
at org.springframework.boot.env.OriginTrackedYamlLoader.createYaml(OriginTrackedYamlLoader.java:66)
at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:162)
at org.springframework.boot.env.OriginTrackedYamlLoader.load(OriginTrackedYamlLoader.java:82)
at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:50)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadDocuments(ConfigFileApplicationListener.java:607)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:523)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java:498)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:468)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$null$7(ConfigFileApplicationListener.java:447)
at java.lang.Iterable.forEach(Iterable.java:75)
省略
但是編譯時不會拋錯。
這類錯誤是 執行緒上下文類載入器在這個啟動 Application 環境事件時失敗,這裡是 ApplicationFailedEvent 型別,去掉這個 Pom 包就可以恢復。
2.controller 層同個檔案裡面,新增到 RequestMapping 路由一樣,編譯時不會錯誤,但執行 Application 會拋錯。
拋錯資訊這個省略。@RequestMapping註解會將 HTTP,請求對映到 MVC 和 REST 控制器的處理方法上,因為是對映,所以不能有重複的。
一般情況下,@RequestMapping("/routepath") routepath 路由 API 是小寫的。
3.一開始寫@Value(${xxx1.xxx2})
xxx1 是 Yaml 檔案裡面的第一層,xxx2 是 Yaml 檔案裡面的第二層。一開始寫的時候容易少寫一個 $,啟動時會產生拋錯。
4.ModelMapper 和 RestTemplate 需要進行配置才能使用。
ModelMapper 不配置就會拋錯。
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-10-28 17:22:04.607 ERROR 8280 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Field modelMapper in com.lilith.ordercenter.service.OrderCenterService required a bean of type 'org.modelmapper.ModelMapper' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'org.modelmapper.ModelMapper' in your configuration.
需要配置
@Bean
public ModelMapper modelMapper() {
return new ModelMapper();
}
Springboot 版本 2.x 以上需要配置 RestTemplate。
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.build();
}
PS:配置@Bean是指 spring 階段是 Xml 裡面的 bean,這裡是指@Configuration啟動容器 +@Bean註冊 Bean。
@Configuration標註在類上,等於是 spring 的 xml 配置檔案中的,配置在 spring 容器 (Application Context)。
相關文章
- 開發小程式過程中採坑
- mpvue & 小程式開發過程中的坑Vue
- 總結開發過程踩到的坑(一)
- npm包使用過程中遇到的坑,長期更~NPM
- Flutter開發過程中遇到的問題記錄Flutter
- 記錄從0開發一個vue的富文字外掛過程以及遇到的坑Vue
- 皮膚開發過程中遇到的3個問題
- 記使用pdf.js過程遇到的坑JS
- Nebula 2.5.0安裝過程及遇到的坑
- [微信小程式]開發中遇到的一些“坑”微信小程式
- springboot整合swagger遇到的坑Spring BootSwagger
- springboot引入mybatis遇到的坑Spring BootMyBatis
- 直播系統開發過程中的一些關鍵點
- Android小部件Widget開發過程中的坑和總結Android
- 記錄在使用Django開發過程中遇到的問題No.2Django
- Android開發過程中遇到的問題以及解決辦法 how toAndroid
- workerman開發過程中遇到的一些常見的問題與解決方法
- 嵌入式軟硬體開發中遇到的坑
- API 開發中可選擇傳遞 token 介面遇到的一個坑API
- 開發直播帶貨系統過程中,需要注意這些“坑”
- 一個Flutter中臺元件的開發過程Flutter元件
- springboot對接dubbo遇到的巨坑Spring Boot
- 嘗試 WebGPU 過程中掉的一些坑WebGPU
- 爬蟲過程中遇到的問題爬蟲
- [前端]基於vue和nodejs的一個簡陋blog的開發過程中遇到的問題前端VueNodeJS
- Laravel 使用 swoole 協程遇到的坑Laravel
- 在JSON中遇到的一些坑JSON
- Idea開發JAVA過程中遇到的錯誤集合以及解決方法,持續更新IdeaJava
- 學習vue過程中遇到的問題Vue
- Windows 安裝 Homestead 遇到的一些坑點Windows
- 自動化測試:學習Selenium+Python的過程中遇到的坑和解決方法Python
- 微信小程式開發遇到的那些坑微信小程式
- 關於SpringBoot結合mybatis後遇到的坑Spring BootMyBatis
- springboot升級過程中踩坑定位分析記錄 | 京東雲技術團隊Spring Boot
- 一個android 的HAL示例中遇到的坑。Android
- 微信和支付寶的支付流程,以及開發中遇到的坑?
- SpringBoot 專案中配置多個 Jackson 的 ObjectMapper ,以及配置遇到的坑Spring BootObjectAPP
- 關於ubuntu安裝中過程遇到問題Ubuntu