javascript
Eclipse 工具上Springboot项目的简单 增删改查 的搭建
目錄
一、為嘛子要學習Springboot
二、簡單的說下springboot
三、咱們對比看看唄
四、開始操作,建項目
1、建一個maven項目
2、pom.xml 依賴 以及 配置文件
①簡單的依賴如下,我就不細說了
②配置文件,application.yml
3、創建相應的包結構
4、使用?Mybatis Generator 自動生成實體類、mapper和mapper.xml文件
5、填寫各個包的內容
①mapper? 增加一個方法
②mapper.xml 的寫法
③service 層接口的編寫
④service 的 Impl 實現類
⑤Controller 層
五、運行
六、遇到的問題以及解決方案
1、剛建好項目,啥都沒干呢就看到 index.jsp 紅叉,如下:
錯誤狀況:
?解決方案:
2、項目基本寫完,沒看到紅叉之類的錯誤提示,但是一運行,報錯
錯誤狀況:
小小分析:
解決方案:
3、再次運行,又報錯了,
錯誤狀況:
查找問題:
定位到問題發生位置后,百度解決:
4、Application run failed 啟動失敗
?小小分析:
解決方案:
5、啟動已經沒問題,但是控制臺有一個警告
警告詳情:
問題所在:
解決問題:
一、為嘛子要學習Springboot
Springboot已經成為基本技能要求的基本。我不知道這樣說語言能通不,只是看到現在各種招聘什么的,基本要求都是分布式、微服務、springboot、springcloud、redis、消息中間件 等。就算有的招聘上還寫的SSM等,到時候面試的時候問用過什么框架啥的。問完,你只用過ssm或ssh,他也會問你對于springboot、springcloud等是否有經驗。很多地方,一聽,不會cloud基本就pass掉你。所以,看起來springcloud已經成為必會的基本技能,而學習springcloud,你就拋不開springboot的使用,畢竟springboot建立項目確實快。
二、簡單的說下springboot
????????簡單粗暴的說,springboot就是讓你建項目和使用插件等簡單很多很多,讓你更快更便捷的建立一個項目,減少你在配置上浪費的時間。
????????打個比方,就像你要吃飯,過去的吃飯,就得準備各種食材調料,按一定的順序或者說手法等去處理和調配他們,讓他們成為能夠下咽的幾個菜。而springboot就像你有點錢了,下館子了,去到飯店,一看菜單,嗯~有套餐,就給服務員說,來個AAA套餐,你不用說要什么菜,也不需要知道這些菜有什么食材和調料。反正付了錢直接吃就是了。
????????約定大于配置,化繁為簡,他把很多東西都給你弄好了,有默認的一套,你用就行了。
? ? ? ? 當然嘍,springboot可不止這一個特點,它可以熱部署、內嵌Servlet容器、自動裝配、自帶應用監控等等,對于學霸或者說有上進心的人來說,這些都要去了解,不過我這種渣渣,當然主要是咋個用嘍。
三、咱們對比看看唄
咱們先看下以前的ssm項目,
?看到這么多的 .xml 文件有沒有很開心?開心到想砸了眼前的東西
好像說了很多廢話,還是開始建項目吧
四、開始操作,建項目
聽說eclipse有創建Springboot的插件sts。我沒裝,所以還是maven創建吧
1、建一個maven項目
File→New→Maven Project
直接Next
?
選擇webapp
?
?填寫下圖剪頭指示的框框,然后Finish
創建好了,項目結構如下圖
?此時為空的maven項目,我們先把pom.xml引用了好依賴,再在相應的包在 src/main/java 中建好
2、pom.xml 依賴 以及 配置文件
①簡單的依賴如下,我就不細說了
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.lx</groupId><artifactId>springboot_demo</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>springboot_demo Maven Webapp</name><url>http://maven.apache.org</url><!-- 依賴父類springboot版本 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.1.RELEASE</version></parent><!--springmvc的依賴--><dependencies><!--web相關--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--添加springdatajpa的依賴--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><!--數據庫驅動包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--springBoot整合Mybatis依賴--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.3</version></dependency><!--測試依賴--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--阿里數據庫連接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.6</version></dependency><!--aop支持--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.5</version></dependency></dependencies><build><finalName>springboot_demo</finalName><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.yml</include><include>**/*.xml</include></includes></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.yml</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><!--打包時,重新打包指定spring boot的啟動類 --><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><!--Mybatis-generator插件,用于自動生成Mapper和POJO--><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.5</version><!--插件設置--><configuration><!--允許移動生成的文件--><verbose>true</verbose><!--啟用覆蓋--><overwrite>true</overwrite><!--自動生成配置 如果名字是generatorConfig.xml可以省略配置<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>--></configuration></plugin></plugins></build> </project>②配置文件,application.yml
server:port: 8080 spring:datasource:#驅動driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxxxxx?characterEncoding=utf8username: rootpassword: *********#連接池類型type: com.alibaba.druid.pool.DruidDataSourcedruid:# 最小數min-idle: 5# 最大數max-active: 20# 初始大小initial-size: 5# 配置獲取連接等待超時時間max-wait: 6000# 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒time-between-eviction-runs-millis: 60000# 配置一個連接在池中最小生存時間 單位為毫秒min-evictable-idle-time-millis: 300000validation-query: SELECT 1 FROM DUALtest-while-idle: truetest-on-borrow: falsetest-on-return: false# 打開 PSCache,并且指定每個連接上PSCache的大小pool-prepared-statements: truemax-pool-prepared-statement-per-connection-size: 20# 配置監控統計攔截的filters,去掉后監控界面sql無法統計,wall用于防火墻filters: stat,wallmybatis:# model的包type-aliases-package: com.lx.springboot_demo.modelconfiguration:# 開啟駝峰uName自動映射到u_namemap-underscore-to-camel-case: true# 該配置項配置了MyBatis配置文件保存路徑mapper-locations: classpath:mappers/*.xml # 配置掃描對應實體所在包,將mapper的實現類注入容器我們在啟動器類上加了@MapperScan注解這里就不需要了3、創建相應的包結構
選擇?src/main/java 反鍵 New → Package
填寫Name 然后完成
?
把這個Java文件改為啟動類
?
名字看你自己哦,我這是?Application
?
修改內容如下:
?重復上面創建包的操作,把需要的包都建好,如下圖:
4、使用?Mybatis Generator 自動生成實體類、mapper和mapper.xml文件
請參考文章? 鏈接:https://blog.csdn.net/qq_39688441/article/details/123851515
5、填寫各個包的內容
由于生成的一套,除了基本的,其他沒有,實際使用還得自己來根據實際情況編寫
①mapper? 增加一個方法
mapper 里就是數據庫操作的方法
?這里簡單,只要定好? 返回值類型、方法名 和 參數? 就OK啦
②mapper.xml 的寫法
?如上圖,1 為編寫的返回值類型,即為,這個返回值要返回哪些字段
2 為引用的返回值的id
?如上圖,可以把常用的 一段sql 提出來,
在需要用到的地方 include 進去
?如上圖為具體的拼寫sql
③service 層接口的編寫
這層也很好寫,想好要干的事,定好 服務名、返回參數 和 入參
④service 的 Impl 實現類
?注意 class 類前面要 @Service 聲明這是 業務層組件
這里就是寫業務邏輯,一個業務要干什么,一個業務也會調多個數據庫操作,我這里就簡單調用一個查詢
⑤Controller 層
?到這里,基本上就寫完了
五、運行
運行步驟如下
打開?Application.Java 文件,文件中點擊反鍵,Run As...??→? Java?Application
啟動成功后:
http://localhost:8080/boot/getUserByNickname?
http://localhost:8080/boot/getUserByNickname?name=lz實際上剛建好時? 一運行就報錯,具體狀況請看下面? ?六、2、3、4、5、
六、遇到的問題以及解決方案
1、剛建好項目,啥都沒干呢就看到 index.jsp 紅叉,如下:
錯誤狀況:
剛建完maven項目,一看紅X,趕緊進去看了下
?
打開index.jsp后,如下問題
?
?解決方案:
反鍵 Build Path 里?
Jave Build Path 里選擇 如下圖 紅框?
選擇合適的tomcat
應用并關閉,很快就運行好了
?報錯已經解決
?
2、項目基本寫完,沒看到紅叉之類的錯誤提示,但是一運行,報錯
錯誤狀況:
具體報錯如下,我貼出來:
14:36:01.267 [main] DEBUG org.springframework.boot.context.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: [file:/D:/jdk1.8.0_101/jre/lib/resources.jar, file:/D:/jdk1.8.0_101/jre/lib/rt.jar, file:/D:/jdk1.8.0_101/jre/lib/jsse.jar, file:/D:/jdk1.8.0_101/jre/lib/jce.jar, file:/D:/jdk1.8.0_101/jre/lib/charsets.jar, file:/D:/jdk1.8.0_101/jre/lib/jfr.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/access-bridge-64.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/cldrdata.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/dnsns.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/jaccess.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/jfxrt.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/localedata.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/nashorn.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/sunec.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/sunjce_provider.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/sunmscapi.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/sunpkcs11.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/zipfs.jar, file:/D:/Work/springboot_demo/target/classes/, file:/D:/tomcat/apache-tomcat-9.0.60/lib/annotations-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina-ant.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina-ha.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina-ssi.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina-storeconfig.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina-tribes.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/ecj-4.20.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/el-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/jasper-el.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/jasper.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/jaspic-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/jsp-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/servlet-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-coyote.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-dbcp.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-cs.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-de.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-es.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-fr.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-ja.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-ko.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-pt-BR.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-ru.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-zh-CN.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-jdbc.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-jni.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-util-scan.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-util.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-websocket.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/websocket-api.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.3.1.RELEASE/spring-boot-starter-web-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter/2.3.1.RELEASE/spring-boot-starter-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot/2.3.1.RELEASE/spring-boot-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.3.1.RELEASE/spring-boot-autoconfigure-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.3.1.RELEASE/spring-boot-starter-logging-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar, file:/C:/Users/397004497/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar, file:/C:/Users/397004497/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar, file:/C:/Users/397004497/.m2/repository/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar, file:/C:/Users/397004497/.m2/repository/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar, file:/C:/Users/397004497/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar, file:/C:/Users/397004497/.m2/repository/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.3.1.RELEASE/spring-boot-starter-json-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.11.0/jackson-databind-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.11.0/jackson-annotations-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.11.0/jackson-core-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.0/jackson-datatype-jdk8-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.0/jackson-datatype-jsr310-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.0/jackson-module-parameter-names-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.3.1.RELEASE/spring-boot-starter-tomcat-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.36/tomcat-embed-core-9.0.36.jar, file:/C:/Users/397004497/.m2/repository/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar, file:/C:/Users/397004497/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.36/tomcat-embed-websocket-9.0.36.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-web/5.2.7.RELEASE/spring-web-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-beans/5.2.7.RELEASE/spring-beans-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-webmvc/5.2.7.RELEASE/spring-webmvc-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-context/5.2.7.RELEASE/spring-context-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-expression/5.2.7.RELEASE/spring-expression-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/2.3.1.RELEASE/spring-boot-starter-data-jpa-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/2.3.1.RELEASE/spring-boot-starter-jdbc-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-jdbc/5.2.7.RELEASE/spring-jdbc-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/jakarta/transaction/jakarta.transaction-api/1.3.3/jakarta.transaction-api-1.3.3.jar, file:/C:/Users/397004497/.m2/repository/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3.jar, file:/C:/Users/397004497/.m2/repository/org/hibernate/hibernate-core/5.4.17.Final/hibernate-core-5.4.17.Final.jar, file:/C:/Users/397004497/.m2/repository/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar, file:/C:/Users/397004497/.m2/repository/org/javassist/javassist/3.24.0-GA/javassist-3.24.0-GA.jar, file:/C:/Users/397004497/.m2/repository/net/bytebuddy/byte-buddy/1.10.11/byte-buddy-1.10.11.jar, file:/C:/Users/397004497/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar, file:/C:/Users/397004497/.m2/repository/org/jboss/jandex/2.1.3.Final/jandex-2.1.3.Final.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar, file:/C:/Users/397004497/.m2/repository/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar, file:/C:/Users/397004497/.m2/repository/org/hibernate/common/hibernate-commons-annotations/5.1.0.Final/hibernate-commons-annotations-5.1.0.Final.jar, file:/C:/Users/397004497/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.3/jaxb-runtime-2.3.3.jar, file:/C:/Users/397004497/.m2/repository/org/glassfish/jaxb/txw2/2.3.3/txw2-2.3.3.jar, file:/C:/Users/397004497/.m2/repository/com/sun/istack/istack-commons-runtime/3.0.11/istack-commons-runtime-3.0.11.jar, file:/C:/Users/397004497/.m2/repository/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/data/spring-data-jpa/2.3.1.RELEASE/spring-data-jpa-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/data/spring-data-commons/2.3.1.RELEASE/spring-data-commons-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-orm/5.2.7.RELEASE/spring-orm-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-tx/5.2.7.RELEASE/spring-tx-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-aspects/5.2.7.RELEASE/spring-aspects-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/mysql/mysql-connector-java/8.0.20/mysql-connector-java-8.0.20.jar, file:/C:/Users/397004497/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.3/mybatis-spring-boot-starter-2.1.3.jar, file:/C:/Users/397004497/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.3/mybatis-spring-boot-autoconfigure-2.1.3.jar, file:/C:/Users/397004497/.m2/repository/org/mybatis/mybatis/3.5.5/mybatis-3.5.5.jar, file:/C:/Users/397004497/.m2/repository/org/mybatis/mybatis-spring/2.0.5/mybatis-spring-2.0.5.jar, file:/C:/Users/397004497/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar, file:/C:/Users/397004497/.m2/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-core/5.2.7.RELEASE/spring-core-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-jcl/5.2.7.RELEASE/spring-jcl-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/com/alibaba/druid-spring-boot-starter/1.2.6/druid-spring-boot-starter-1.2.6.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-aop/2.3.1.RELEASE/spring-boot-starter-aop-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-aop/5.2.7.RELEASE/spring-aop-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/aspectj/aspectjweaver/1.9.5/aspectjweaver-1.9.5.jar, file:/C:/Users/397004497/.m2/repository/org/mybatis/generator/mybatis-generator-core/1.3.5/mybatis-generator-core-1.3.5.jar] 14:36:01.355 [main] ERROR org.springframework.boot.SpringApplication - Application run failed java.lang.IllegalStateException: Failed to load property source from 'file:/D:/Work/springboot_demo/target/classes/application.yml' (classpath:/application.yml)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:554)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java:499)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:469)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$null$7(ConfigFileApplicationListener.java:448)at java.lang.Iterable.forEach(Iterable.java:75)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$8(ConfigFileApplicationListener.java:448)at java.lang.Iterable.forEach(Iterable.java:75)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:445)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$0(ConfigFileApplicationListener.java:348)at org.springframework.boot.context.config.FilteredPropertySource.apply(FilteredPropertySource.java:54)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:336)at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:226)at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:210)at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:200)at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:188)at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:80)at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:345)at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)at com.lx.springboot_demo.Application.main(Application.java:19) Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)in 'reader', line 6, column 3:#驅動^at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:419)at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227)at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:586)at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:136)at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:257)at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248)at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236)at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162)at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:257)at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248)at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236)at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162)at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:95)at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:134)at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:494)at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:200)at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:164)at org.springframework.boot.env.OriginTrackedYamlLoader.load(OriginTrackedYamlLoader.java:76)at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:50)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadDocuments(ConfigFileApplicationListener.java:608)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:524)... 25 common frames omitted小小分析:
首先找到最開始報錯的地方,
java.lang.IllegalStateException: Failed to load property source from 'file:/D:/Work/springboot_demo/target/classes/application.yml' (classpath:/application.yml)Failed to load property source from ‘file:/xxxxxxxxxxxxxx.xxxxx.yml’??(classpath:/application.yml)
這個是說你的yml有問題,可能是語法有錯
咋們往下翻:
?這就是提示了
打開? yml? 文件
?看到了嗎,和上面提示的一樣,第6行,第3個位置開始的? “#驅動”
我這里,一看,這個中文注釋是這個文件的第一個中文注釋
所以我猜是注釋有問題
解決方案:
把? yml? 文件里所有注釋全部刪掉
3、再次運行,又報錯了,
錯誤狀況:
2022-04-02 16:03:36.377 ERROR 24484 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : 在路徑為的上下文中,Servlet[dispatcherServlet]的Servlet.service()引發了具有根本原因的異常Request processing failed; nested exception is java.lang.NullPointerExceptionjava.lang.NullPointerException: nullat com.lx.springboot_demo.controller.UserMainController.getUserByNickname(UserMainController.java:22) ~[classes/:na]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_101]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_101]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101]at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.7.RELEASE.jar:5.2.7.RELEASE]查找問題:
通過打印語句,發現,?Controller 層已經進入,沒進??Service? 層,
檢查注解,發現??Controller 層用?Service? 時,忘了注入了
?加上自動注入
?進入到service層打印,但是又報錯
2022-04-02 16:08:46.374 ERROR 23972 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : 在路徑為的上下文中,Servlet[dispatcherServlet]的Servlet.service()引發了具有根本原因的異常Request processing failed; nested exception is java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.lx.springboot_demo.dao.UserMainMapper.Listjava.lang.IllegalArgumentException: Result Maps collection does not contain value for com.lx.springboot_demo.dao.UserMainMapper.Listat org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:1009) ~[mybatis-3.5.5.jar:3.5.5]at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:718) ~[mybatis-3.5.5.jar:3.5.5]at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:394) ~[mybatis-3.5.5.jar:3.5.5]at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:285) ~[mybatis-3.5.5.jar:3.5.5]定位到問題發生位置后,百度解決:
百度后說是
?如上圖,確實用錯了
修改如下圖 ,也是不對的。
我要查的是多條實體。最后改為下圖這樣就好了。
?前面是我想錯了,這里?resultMap 是返回結果的每一個實體的的類型,而不是返回結果的類型
4、Application run failed 啟動失敗
錯誤狀況:
09:50:14.499 [main] DEBUG org.springframework.boot.context.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: [file:/D:/jdk1.8.0_101/jre/lib/resources.jar, file:/D:/jdk1.8.0_101/jre/lib/rt.jar, file:/D:/jdk1.8.0_101/jre/lib/jsse.jar, file:/D:/jdk1.8.0_101/jre/lib/jce.jar, file:/D:/jdk1.8.0_101/jre/lib/charsets.jar, file:/D:/jdk1.8.0_101/jre/lib/jfr.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/access-bridge-64.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/cldrdata.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/dnsns.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/jaccess.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/jfxrt.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/localedata.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/nashorn.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/sunec.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/sunjce_provider.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/sunmscapi.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/sunpkcs11.jar, file:/D:/jdk1.8.0_101/jre/lib/ext/zipfs.jar, file:/D:/Work/springboot_demo/target/classes/, file:/D:/tomcat/apache-tomcat-9.0.60/lib/annotations-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina-ant.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina-ha.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina-ssi.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina-storeconfig.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina-tribes.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/catalina.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/ecj-4.20.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/el-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/jasper-el.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/jasper.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/jaspic-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/jsp-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/servlet-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-api.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-coyote.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-dbcp.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-cs.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-de.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-es.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-fr.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-ja.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-ko.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-pt-BR.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-ru.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-i18n-zh-CN.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-jdbc.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-jni.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-util-scan.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-util.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/tomcat-websocket.jar, file:/D:/tomcat/apache-tomcat-9.0.60/lib/websocket-api.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.3.1.RELEASE/spring-boot-starter-web-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter/2.3.1.RELEASE/spring-boot-starter-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot/2.3.1.RELEASE/spring-boot-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.3.1.RELEASE/spring-boot-autoconfigure-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.3.1.RELEASE/spring-boot-starter-logging-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar, file:/C:/Users/397004497/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar, file:/C:/Users/397004497/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar, file:/C:/Users/397004497/.m2/repository/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar, file:/C:/Users/397004497/.m2/repository/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar, file:/C:/Users/397004497/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar, file:/C:/Users/397004497/.m2/repository/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.3.1.RELEASE/spring-boot-starter-json-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.11.0/jackson-databind-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.11.0/jackson-annotations-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.11.0/jackson-core-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.0/jackson-datatype-jdk8-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.0/jackson-datatype-jsr310-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.0/jackson-module-parameter-names-2.11.0.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.3.1.RELEASE/spring-boot-starter-tomcat-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.36/tomcat-embed-core-9.0.36.jar, file:/C:/Users/397004497/.m2/repository/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar, file:/C:/Users/397004497/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.36/tomcat-embed-websocket-9.0.36.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-web/5.2.7.RELEASE/spring-web-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-beans/5.2.7.RELEASE/spring-beans-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-webmvc/5.2.7.RELEASE/spring-webmvc-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-context/5.2.7.RELEASE/spring-context-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-expression/5.2.7.RELEASE/spring-expression-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/2.3.1.RELEASE/spring-boot-starter-data-jpa-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/2.3.1.RELEASE/spring-boot-starter-jdbc-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-jdbc/5.2.7.RELEASE/spring-jdbc-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/jakarta/transaction/jakarta.transaction-api/1.3.3/jakarta.transaction-api-1.3.3.jar, file:/C:/Users/397004497/.m2/repository/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3.jar, file:/C:/Users/397004497/.m2/repository/org/hibernate/hibernate-core/5.4.17.Final/hibernate-core-5.4.17.Final.jar, file:/C:/Users/397004497/.m2/repository/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar, file:/C:/Users/397004497/.m2/repository/org/javassist/javassist/3.24.0-GA/javassist-3.24.0-GA.jar, file:/C:/Users/397004497/.m2/repository/net/bytebuddy/byte-buddy/1.10.11/byte-buddy-1.10.11.jar, file:/C:/Users/397004497/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar, file:/C:/Users/397004497/.m2/repository/org/jboss/jandex/2.1.3.Final/jandex-2.1.3.Final.jar, file:/C:/Users/397004497/.m2/repository/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar, file:/C:/Users/397004497/.m2/repository/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar, file:/C:/Users/397004497/.m2/repository/org/hibernate/common/hibernate-commons-annotations/5.1.0.Final/hibernate-commons-annotations-5.1.0.Final.jar, file:/C:/Users/397004497/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.3/jaxb-runtime-2.3.3.jar, file:/C:/Users/397004497/.m2/repository/org/glassfish/jaxb/txw2/2.3.3/txw2-2.3.3.jar, file:/C:/Users/397004497/.m2/repository/com/sun/istack/istack-commons-runtime/3.0.11/istack-commons-runtime-3.0.11.jar, file:/C:/Users/397004497/.m2/repository/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/data/spring-data-jpa/2.3.1.RELEASE/spring-data-jpa-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/data/spring-data-commons/2.3.1.RELEASE/spring-data-commons-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-orm/5.2.7.RELEASE/spring-orm-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-tx/5.2.7.RELEASE/spring-tx-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-aspects/5.2.7.RELEASE/spring-aspects-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/mysql/mysql-connector-java/8.0.20/mysql-connector-java-8.0.20.jar, file:/C:/Users/397004497/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.3/mybatis-spring-boot-starter-2.1.3.jar, file:/C:/Users/397004497/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.3/mybatis-spring-boot-autoconfigure-2.1.3.jar, file:/C:/Users/397004497/.m2/repository/org/mybatis/mybatis/3.5.5/mybatis-3.5.5.jar, file:/C:/Users/397004497/.m2/repository/org/mybatis/mybatis-spring/2.0.5/mybatis-spring-2.0.5.jar, file:/C:/Users/397004497/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar, file:/C:/Users/397004497/.m2/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-core/5.2.7.RELEASE/spring-core-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-jcl/5.2.7.RELEASE/spring-jcl-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/com/alibaba/druid-spring-boot-starter/1.2.6/druid-spring-boot-starter-1.2.6.jar, file:/C:/Users/397004497/.m2/repository/com/alibaba/druid/1.2.6/druid-1.2.6.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/boot/spring-boot-starter-aop/2.3.1.RELEASE/spring-boot-starter-aop-2.3.1.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/springframework/spring-aop/5.2.7.RELEASE/spring-aop-5.2.7.RELEASE.jar, file:/C:/Users/397004497/.m2/repository/org/aspectj/aspectjweaver/1.9.5/aspectjweaver-1.9.5.jar, file:/C:/Users/397004497/.m2/repository/org/mybatis/generator/mybatis-generator-core/1.3.5/mybatis-generator-core-1.3.5.jar] 09:50:14.848 [main] ERROR org.springframework.boot.SpringApplication - Application run failed java.lang.IllegalStateException: Failed to load property source from 'file:/D:/Work/springboot_demo/target/classes/application.yml' (classpath:/application.yml)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:554)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java:499)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:469)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$null$7(ConfigFileApplicationListener.java:448)at java.lang.Iterable.forEach(Iterable.java:75)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$8(ConfigFileApplicationListener.java:448)at java.lang.Iterable.forEach(Iterable.java:75)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:445)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$0(ConfigFileApplicationListener.java:348)at org.springframework.boot.context.config.FilteredPropertySource.apply(FilteredPropertySource.java:54)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:336)at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:226)at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:210)at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:200)at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:188)at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:80)at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:345)at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)at com.lx.springboot_demo.Application.main(Application.java:19) Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)in 'reader', line 39, column 1:mapper-locations: class:mappers ... ^at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:419)at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227)at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:586)at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:136)at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:257)at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248)at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236)at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162)at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:95)at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:134)at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:494)at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:200)at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:164)at org.springframework.boot.env.OriginTrackedYamlLoader.load(OriginTrackedYamlLoader.java:76)at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:50)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadDocuments(ConfigFileApplicationListener.java:608)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:524)... 25 common frames omitted?
java.lang.IllegalStateException: Failed to load property source from 'file:/D:/Work/springboot_demo/target/classes/application.yml' (classpath:/application.yml)?
如上圖,它總是提示我,這塊有問題,可是我檢查,yml配置文件,看起來沒寫錯
?小小分析:
注意看這里
這個算是小箭頭吧,它標注的位置,在我代碼前面的空白
我沒明白,不過我各種實驗過,反正只要把 mybatis: 這些東西全刪除,居然能正常啟動,并且正常調用返回。那我確定就是mybatis這塊寫錯了。
解決方案:
最終,實驗到我把前面空白去掉,他就不報這一行錯誤。
然后和上面復制粘貼過來的進行對比,發現,這幾行報錯的前面我 按得是 “Tab” 按鍵,而正確的代碼里,前面的空白 用的是多個? ?空格? 鍵
?修改后,如下:
mybatis:mapper-locations: class:mappers/*.xmltype-aliases-package: com.lx.springboot_demo.modelconfiguration:map-underscore-to-camel-case: true把前面縮進的位置都用? 空格? 鍵來縮進
啟動,問題解決。
5、啟動已經沒問題,但是控制臺有一個警告
警告詳情:
啟動時,控制臺如下:
. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v2.3.1.RELEASE)2022-04-06 10:04:00.230 INFO 28028 --- [ main] com.lx.springboot_demo.Application : Starting Application on LAPTOP-710QH23H with PID 28028 (D:\Work\springboot_demo\target\classes started by 397004497 in D:\Work\springboot_demo) 2022-04-06 10:04:00.233 INFO 28028 --- [ main] com.lx.springboot_demo.Application : No active profile set, falling back to default profiles: default 2022-04-06 10:04:01.983 INFO 28028 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFERRED mode. 2022-04-06 10:04:02.015 INFO 28028 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 20ms. Found 0 JPA repository interfaces. 2022-04-06 10:04:04.386 INFO 28028 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2022-04-06 10:04:04.453 INFO 28028 --- [ main] o.apache.catalina.core.StandardService : 正在啟動服務[Tomcat] 2022-04-06 10:04:04.453 INFO 28028 --- [ main] org.apache.catalina.core.StandardEngine : 正在啟動 Servlet 引擎:[Apache Tomcat/9.0.60] 2022-04-06 10:04:04.454 WARN 28028 --- [ main] o.a.catalina.core.AprLifecycleListener : This listener must only be nested within Server elements, but is in [TomcatEmbeddedContext]. 2022-04-06 10:04:04.455 INFO 28028 --- [ main] o.a.catalina.core.AprLifecycleListener : 使用APR版本[1.7.0]加載了基于APR的Apache Tomcat本機庫[1.2.31]。 2022-04-06 10:04:04.455 INFO 28028 --- [ main] o.a.catalina.core.AprLifecycleListener : APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。 2022-04-06 10:04:04.455 INFO 28028 --- [ main] o.a.catalina.core.AprLifecycleListener : APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true] 2022-04-06 10:04:04.635 INFO 28028 --- [ main] o.a.catalina.core.AprLifecycleListener : OpenSSL成功初始化 [OpenSSL 1.1.1l 24 Aug 2021] 2022-04-06 10:04:05.643 INFO 28028 --- [ main] org.apache.jasper.servlet.TldScanner : 至少有一個JAR被掃描用于TLD但尚未包含TLD。 為此記錄器啟用調試日志記錄,以獲取已掃描但未在其中找到TLD的完整JAR列表。 在掃描期間跳過不需要的JAR可以縮短啟動時間和JSP編譯時間。 2022-04-06 10:04:05.647 INFO 28028 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2022-04-06 10:04:05.648 INFO 28028 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 5329 ms 2022-04-06 10:04:05.926 INFO 28028 --- [ main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 2022-04-06 10:04:10.829 INFO 28028 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited 2022-04-06 10:04:11.091 INFO 28028 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2022-04-06 10:04:11.285 INFO 28028 --- [ task-1] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2022-04-06 10:04:11.488 INFO 28028 --- [ task-1] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.4.17.Final 2022-04-06 10:04:12.192 WARN 28028 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2022-04-06 10:04:12.277 INFO 28028 --- [ task-1] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.0.Final} 2022-04-06 10:04:12.948 INFO 28028 --- [ task-1] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL57Dialect 2022-04-06 10:04:13.545 INFO 28028 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2022-04-06 10:04:13.546 INFO 28028 --- [ main] DeferredRepositoryInitializationListener : Triggering deferred initialization of Spring Data repositories… 2022-04-06 10:04:13.547 INFO 28028 --- [ main] DeferredRepositoryInitializationListener : Spring Data repositories initialized! 2022-04-06 10:04:13.567 INFO 28028 --- [ main] com.lx.springboot_demo.Application : Started Application in 14.39 seconds (JVM running for 14.968) 2022-04-06 10:04:13.824 INFO 28028 --- [ task-1] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2022-04-06 10:04:13.839 INFO 28028 --- [ task-1] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'出現了
一行紅字,百度翻譯了下
?
正在加載class`com。mysql。jdbc。司機。這是不贊成的。新的驅動程序類是'com。mysql。希杰。jdbc。司機。驅動程序通過SPI自動注冊,通常不需要手動加載驅動程序類。
意思是 :不贊成加載 “com.mysql.jdbc.Driver” 驅動。新的驅動程序類 “com.mysql.cj.jdbc.Driver”。自動注冊,不需要手動加載
問題所在:
配置文件加載驅動應該改了
解決問題:
修改驅動類名
?
總結
以上是生活随笔為你收集整理的Eclipse 工具上Springboot项目的简单 增删改查 的搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语音:输入两个整数,要求输出其中值较大
- 下一篇: ProxySQL 配置详解及读写分离(+