springboot踩坑日記,持續(xù)更新中


項目地址:https://github.com/simperLv/springboot2.0,歡迎大佬們提出寶貴意見


1.SpringBoot中構(gòu)建帶有含參構(gòu)造函數(shù)的Bean

報錯信息如圖1

圖1

解決方案:使用@Bean注解手動創(chuàng)建ImageServiceImpl的實例,具體步驟如下:

1、定義BeanConfig類(或者將Bean的定義直接寫在Application啟動類中),如圖2


圖2

2、修改ImageServiceImpl(含有參構(gòu)造函數(shù)的Bean),如圖3,注意,其中的@Service(或者@Component、@Controller、@Repository、@Configuration這些用來定義Bean的注解)注解一定要注釋掉或者刪掉,這樣才能夠讓自己手動構(gòu)建的Bean起作用:


圖3

感謝博客:SpringBoot中構(gòu)建帶有含參構(gòu)造函數(shù)的Bean,解決報錯Parameter 0 of constructor in XXX required a bean ... - CSDN博客 ,我這里是直接把構(gòu)造函數(shù)刪除了。

2.Configuration Annotation Proessor not found in classpath

這個是我在添加@ConfigurationProperties(prefix ="XXX")這個注解時,出現(xiàn)的。

具體原因:

1、出現(xiàn)spring boot Configuration Annotation Proessor not found in classpath的提示是在用了@ConfigurationProperties這個注解時,所以問題出現(xiàn)在ConfigurationProperties注解。

2、根據(jù)提示的not found in classpath,查詢此注解的使用關(guān)于怎么指定classpath,進(jìn)而查詢location,spring boot1.5以上版本@ConfigurationProperties取消location注解

解決方案:圖4

圖4

鏈接:Spring Boot 踩坑之路之 Configuration Annotation Proessor not found in classpath - CSDN博客

3.ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

? ? ? ? 這個問題真是把我坑死了,據(jù)說是sql用戶沒有權(quán)限,然后就按照網(wǎng)上的方法試了很多,結(jié)果都不行,很多都是說application.yml中的數(shù)據(jù)庫密碼如果是數(shù)字就要用引號包起來,結(jié)果還是不行,最后修改my.ini成功解決了(打開后,搜索mysqld關(guān)鍵字。找到后,在mysqld下面添加skip-grant-tables,保存退出),如圖5,鏈接:鏈接


圖5

4.spring boot 整合mybatis,Junit時報錯,org.apache.ibatis.binding.BindingException: Invalid bound statement(not found)

報錯信息如圖,6

圖6

找了很久,最后總結(jié)原因是因為掃描不到xxxMapper.xml,

解決辦法:將xxxMapper.xml文件放在了src/main/resources下,然后在application.properties文件中添加配置

mybatis.mapper-locations=classpath:mappings/*.xml

或者在application.yml文件中加入配置

mybatis:

? ? mapper-locations: classpath:mappings/*.xml

或者使用@Select、@Insert、@Update、@Delete注解代替xxxMapper.xml里面的內(nèi)容,這樣就不存在掃描xxxMapper.xml文件的問題了。

感謝博客: spring boot 整合mybatis org.apache.ibatis.binding.BindingException: Invalid bound statement(not found) - CSDN博客

5.使用Druid作為springboot的數(shù)據(jù)源(添加監(jiān)控)

之前引入druid的包,鏈接:druid鏈接,結(jié)果不能監(jiān)控sql,于是找到兩種解決方法:

1.添加圖7方法到DruidConfiguration類中

圖7

在添加方法后還是報錯(圖8),原因是配置文件中有l(wèi)og4j配置(圖9),需要將該配置刪掉


圖8


圖9

2.將Druid的pom坐標(biāo)替換成starter(如圖10),鏈接:druid-spring-boot-starter鏈接,starter已經(jīng)自動集成了監(jiān)控,所以不需要添加過多的配置

圖10

兩種方法嘗試后都是可行的,然后我采用的方法2.

6.SpringBoot 配置使用fastjson中文亂碼的問題

在學(xué)習(xí)springboot中配置fastjson時,發(fā)現(xiàn)打印出來的json數(shù)據(jù)出現(xiàn)中文亂碼如圖11,配置信息類如圖12


圖11
圖12

在上網(wǎng)查詢之后,發(fā)現(xiàn)可以通過圖13方式修改(這里由于不清楚MediaType是什么東西,于是在簡書上找到一位朋友的介紹: MediaType指的是要傳遞的數(shù)據(jù)的MIME類型,MediaType對象包含了三種信息:type? 、subtype以及charset,一般將這些信息傳入parse()方法中,這樣就可以解析出MediaType對象,比如 "text/x-markdown; charset=utf-8" ,type值是text,表示是文本這一大類;/后面的x-markdown是subtype,表示是文本這一大類下的markdown這一小類; charset=utf-8 則表示采用UTF-8編碼。鏈接:關(guān)于MediaType的詳細(xì)介紹),修改后結(jié)果如圖14

圖13


圖14


7.Table 'travel.hibernate_sequence' doesn't exist

在使用攔截器記錄SpringBoot的請求日志時,在寫入日志時,報錯Table 'travel.hibernate_sequence' doesn't exist,發(fā)現(xiàn)是因為主鍵自增長策略問題。需要將JPA中的實體類ID生成略組改成@GeneratedValue(strategy = GenerationType.IDENTITY).

關(guān)于主鍵策略(鏈接:主鍵策略):

@GeneratedValue:主鍵的產(chǎn)生策略,通過strategy屬性指定。

主鍵產(chǎn)生策略通過GenerationType來指定。GenerationType是一個枚舉,它定義了主鍵產(chǎn)生策略的類型。

1、AUTO自動選擇一個最適合底層數(shù)據(jù)庫的主鍵生成策略。如MySQL會自動對應(yīng)auto increment。這個是默認(rèn)選項,即如果只寫@GeneratedValue,等價于@GeneratedValue

(strategy=GenerationType.AUTO)。

2、IDENTITY 表自增長字段,Oracle不支持這種方式。

3、SEQUENCE 通過序列產(chǎn)生主鍵,MySQL不支持這種方式。

4、TABLE 通過表產(chǎn)生主鍵,框架借由表模擬序列產(chǎn)生主鍵,使用該策略可以使應(yīng)用更易于數(shù)據(jù)庫移植。不同的JPA實現(xiàn)商生成的表名是不同的,如 OpenJPA生成openjpa_sequence_table表,Hibernate生成一個hibernate_sequences表,而TopLink則生成sequence表。這些表都具有一個序列名和對應(yīng)值兩個字段,如SEQ_NAME和SEQ_COUNT。

8.The field file exceeds its maximum permitted size of 1048576 bytes

在實現(xiàn)springboot上傳文件時,出現(xiàn)文件過大的錯誤,但是我在yml中是設(shè)置了文件大小沒有效果,在查找資料時發(fā)現(xiàn),還可以在springboot啟動類中配置。如下圖15,問題解決。


圖 15
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,351評論 25 708
  • 萬里美西(洛杉磯-圣地亞哥-約書亞樹國家公園-金曼-大峽谷-佩吉-拉斯維加斯-死亡谷-舊金山-圣何塞-1號公路-洛...
    閱游閱讀 635評論 0 0
  • 覺察日記88 今天中午在外面買旅游必備物品,然后一個小伙伴打電話說需要我的支持,而且說想到我家來和我一起住一天,這...
    我和榕樹閱讀 313評論 0 0
  • 今天跟先生一起過生日,吹蠟燭。真的很開心,有一種在家里和家人一起過生日的感覺。 溫馨,寧靜,溫暖。 把公司當(dāng)成家,...
    姜雷_24b1閱讀 166評論 0 0

友情鏈接更多精彩內(nèi)容