目录

一、为嘛子要学习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项目的简单 增删改查 的搭建相关推荐

  1. springboot+mybatis+thymleft 做一套简单增删改查

    首先我们先创建项目 注意:创建SpringBoot项目时一定要联网不然会报错 项目创建好后我们首先对 application.yml 进行编译 #指定端口号 server:port: 8888 #配置 ...

  2. SpringBoot + MyBatis + MySQL +IDEA2021 增删改查 2021-06-04

    SpringBoot + MyBatis + MySQL +IDEA2021 增删改查 1.环境介绍 Windows 10 JDK 1.8 MySQL 8 IDEA 2021.1.2 2.开始操作.新 ...

  3. java springboot+mybaits 实现数据库增删改查案例

    springboot是java中最实用,当前也是最流行的框架,mybaits对应dao层.想要做项目springboot和mybaits是必须的.今天就教大家怎么简单搭建一个用springboot的增 ...

  4. java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作

    1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...

  5. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  6. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

  7. springboot对于redis的增删改查

    springboot对于redis的增删改查 1.下载redis,安装之后,打开redis服务器.不过有绿色版的,直接打开redis服务器可执行文件,启动redis服务器. 2.在pom.xml配置文 ...

  8. 【无标题】vue 简单增删改查表格

    <template><div><h2>table简单增删改查</h2><input type="text" v-model=& ...

  9. mysql创建数据表列子,MySQL 创建数据库及简单增删改查

    MySQL 创建数据库及简单增删改查 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 登入: Enter passwor ...

最新文章

  1. 侠客X官方网站成立,第一个内测版本即将放出,敬请期待.
  2. SQL函数类的操作,增加,查询
  3. 人工智能不是计算机领域能学么,人工智能的几个热门领域简介及作用
  4. jQuery formValidator表单校验代码生成器ver1.0
  5. java字符串排序_对字符串排序持一种宽容的心态
  6. 在Java中确定文件类型
  7. sdut 汉诺塔系列2
  8. python的调试器_玩转Python调试器
  9. Python中使用xpath结合contains
  10. matlab 高级函数 —— ind2sub、kron
  11. 设置时间同步(ntp)详细步骤
  12. jdk1.8下载安装教程
  13. 中间件技术是一种计算机游戏,游戏界面中间件有哪些
  14. matlab gui简单教程
  15. 微信小程序开发者工具及官网
  16. python基础-数据类型与基本操作
  17. matlab正弦余弦与圆的关系
  18. ssh 提示Connection closed by * 的解决方案
  19. 暗黑破坏神 用什么 开发的_软件开发中最具破坏性的五种态度
  20. 强化学习-蒙特卡罗法

热门文章

  1. 扭蛋机html源码,微信小程序wxss制作扭蛋机
  2. 企业要怎样做才能避免进入直播带货误区?
  3. 使用链表进行奇偶分排 c语言
  4. Python绘制地理图--Cartopy基础
  5. 28 爬虫 - re 正则 匹配中文
  6. 网络及网络设备(持续更新)
  7. Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od
  8. 程序员debug三大定律
  9. WebView加载失败或网络异常时,替换WebView的错误界面;
  10. 【论文精读】Deep Defocus Map Estimation using Domain Adaptation-2019CVPR