SpringBoot报错整理(持续更新中........)

1. 在往数据库里添加一行数据,而没有指定id的时候(因为数据库中设置了id自增,所以添加的时候选择了不添加id),运行SpringBoot项目的时候报错:

ested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.example.domain.Book' with value '1630608189923823618'
在这里插入图片描述
原因:Mybatis-plus默认生成id的策略是由它自己指定的,用的是雪花算法。我们则需要使用数据库的id自增策略。
解决方法:在application.yml中指定即可:id-type:auto
在这里插入图片描述

2. Springboot使用mabatis-plus往数据库插入数据的时候中文出现???乱码。

解决方法一:在url路径后面添加:useUnicode=true&characterEncoding=utf8(如果还未解决则继续使用方法二)
在这里插入图片描述
解决方法二:在IEDA中选择file->setting->editor->code style->file encodings都改为utf-8 ,并且勾上选项。(如果还未解决则继续使用方法三)
在这里插入图片描述
解决方法三:找到数据库安装路径下的my.ini文件,将第66行和第99行的#号去掉(每个人行数位置可能不同),并且改为下面样式。然后重启MySQL即可(从计算机–服务–MySQL80重启也可以),命令行重启(需要使用管理员身份运行)也可以(启动:net start mysql 80 停止:net stop mysql80)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.使用MyBatis-plus报错数据库属性名xxx_xxx不存在

知识点:mybatis-plus采用的是驼峰命名法。
所以默认情况下 mybatis-plus会自动将实体类的属性名中的 大写字母 变成 小写 并加上 下换线_ (last_name)当做数据库表字段
解决办法:

1. 将数据库中的属性名改为下划线的样式
2.  为每个实体类单独指定字段名
@Data
	@TableName("stu_employee")
	public class Employee  {
	    @TableField(value = "isAdmin")
	    private String isAdmin;
	}
  1. 修改配置文件,关闭驼峰命名法:
#在springboot的yml配置文件中配置
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: false

4. vue前端访问后端报错:net::ERR_FAILED 200

在这里插入图片描述

问题分析:
由于后端打印了日志表明前端的访问没有错,问题出在后端。
即为前端可以把数据发送到后端,后端能接收到也能操作,但是后端无法将数据发送出去,经过资料查询说明是后端未加跨域的response相应。
解决办法:
新建一个类GlobalCorsConfig.java实现全局跨域

package com.sf.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

import java.util.ArrayList;
import java.util.List;

/**
 * 全局跨域配置
 */
@Configuration
public class GlobalCorsConfig {
    /**
     * 允许跨域调用的过滤器
     */
    @Bean
    public CorsFilter corsFilter() {
        //1. 添加 CORS配置信息
        CorsConfiguration config = new CorsConfiguration();
        // 放行哪些原始域
        config.addAllowedOrigin("*");
        // 是否发送 Cookie
        List<String> list = new ArrayList<>();
        list.add("*");
        config.setAllowedOriginPatterns(list);
        // 放行哪些请求方式
        config.addAllowedMethod("*");
        // 放行哪些原始请求头部信息
        config.addAllowedHeader("*");
        // 暴露哪些头部信息
        config.addExposedHeader("*");
        //2. 添加映射路径
        UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
        corsConfigurationSource.registerCorsConfiguration("/**",config);
        //3. 返回新的CorsFilter
        return new CorsFilter(corsConfigurationSource);
    }
}

5. SpringBoot报错ERROR org.springframework.boot.SpringApplication – Application run failed

在这里插入图片描述

  1. 报错信息:当有Input length = 1时,经过各种查询,说明是我不知道什么时候点击到了更改.yml文件字符为GBK,修改过来就可以了
  2. 报错信息:当有Input length = 2时,因为修改的时候不小心把Default encoding for properties files修改为了UTF-8。
    解决办法:将字符修改为如下样式,就能正常跑了。
    在这里插入图片描述
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BeanDefinitionStoreException是Spring Framework的一个异常类,它表示在加载bean定义时出现了问题。根据引用提供的上下文初始化失败的错误消息,这个异常可能是由于无法读取候选组件类文件而引起的。 根据引用的警告信息,还可能与默认包的@ComponentScan有关。在Spring,使用@ComponentScan注解来扫描指定包下的组件,并将其注册为bean。然而,默认包是不建议使用的,因为它会导致一些问题,例如无法扫描到组件。 要解决这个问题,首先需要检查引用提到的文件路径是否正确,确保能够正确读取到候选组件类。如果路径有误,可以尝试修正路径或确保文件存在。 另外,将组件类放置在非默认包也是一个好的做法。通过创建一个合适的包结构,将组件类放入其,并使用@ComponentScan注解扫描这个包,可以避免默认包的问题。 最后,如果问题仍然存在,可以尝试重新构建项目,检查并修复项目配置文件的错误,确保正确加载bean定义。 综上所述,要解决Spring Boot报错BeanDefinitionStoreException,可以尝试以下步骤: 1. 检查引用提到的文件路径是否正确,确保能够正确读取到候选组件类。 2. 将组件类放置在非默认包,并使用@ComponentScan注解扫描这个包。 3. 重新构建项目,检查并修复项目配置文件的错误,确保正确加载bean定义。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值