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.Driver
    url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxxxxx?characterEncoding=utf8
    username: root
    password: *********
    #连接池类型
    type: com.alibaba.druid.pool.DruidDataSource
    
    druid:
      # 最小数
      min-idle: 5
      # 最大数
      max-active: 20
      # 初始大小
      initial-size: 5
      # 配置获取连接等待超时时间
      max-wait: 6000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存时间  单位为毫秒
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      # 打开 PSCache,并且指定每个连接上PSCache的大小
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,wall用于防火墙
      filters: stat,wall
    
mybatis:
	# model的包
	type-aliases-package: com.lx.springboot_demo.model
	configuration:
	# 开启驼峰uName自动映射到u_name
	map-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.NullPointerException

java.lang.NullPointerException: null
	at 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.List

java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.lx.springboot_demo.dao.UserMainMapper.List
	at 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/*.xml

  type-aliases-package: com.lx.springboot_demo.model

  configuration:
    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”。自动注册,不需要手动加载

问题所在:

配置文件加载驱动应该改了

解决问题:

修改驱动类名

 

  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞天神猴

希望对像我一样的初学者有所帮助

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值