原标题:Springboot项目开发遇到的各种问题及解决方案
异常一:IDEA连接mysql8.0.16,报[08001] Could not create connection to database server.
Connection to icloud_db@localhost failed.
[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.
原因是Mysql版本比较高出现的系列适配问题。
解决方式:
1. mysql5.5 使用:com.mysql.jdbc.Driver而8.0.*版本用com.mysql.cj.jdbc.Driver
2. 追加useSSL+serverTimezone+characterEncoding+autoReconnect
jdbc:mysql://localhost:3306/icloud_db?useSSL=false&serverTimezone=Hongkong&characterEncoding=utf-8&autoReconnect=true
mysql的连接驱动配置在这个位置,idea--->Database--->"+"---->>data source--->>mysql
------------------------------------------------------------------ 分割线 ----------------------------------------------------------------
异常二: IDEA中,使用generator插件生成mybatis代码,遇到Could not autowire. No beans of 'xxx' type found.异常
解决方式1:mapper文件上加@Repository注解,这是从sping2.0新增的一个注解,用于简化 Spring 的开发,实现数据访问;
2:在mapper文件上加@Component注解,把普通pojo实例化到spring容器中;
------------------------------------------------------------------ 分割线 ----------------------------------------------------------------
异常三: TypeException: The alias 'Criterion' is already mapped to the value ****
通过mybaits插件自动生成代码(多张数据库表的mapper文件)时,报如上异常;
原因:是因为mybatis2.0.1自身缺陷导致的bug,而且mybatis默认使用2.0.1。
解决方式:使用mybatis-spring 2.0.0 或 2.0.2-SNAPSHOT
------------------------------------------------------------------ 分割线 ----------------------------------------------------------------
异常四: FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.
原因:通过MultipartFile文件上传时,报该异常。原因:上传文件大小超过tomcate的最大限制;
解决方式:
方式一:在application.properties中加入配置,改变上传文件最大值;
1、1.4版本之前配置方式:
multipart.maxFileSize=2000Mb
multipart.maxRequestSize=2500Mb
2、1.4版本后修改为:
spring.http.multipart.maxFileSize=2000Mb
spring.http.multipart.maxRequestSize=2500Mb
3、2.0版本之后修改该为:
spring.http.multipart.max-file-size=2000Mb
spring.http.multipart.max-request-size=2500Mb
方式二:在启动类 Application中添加配置,我是采取这种方式解决的。
1.给该类添加@Configuration 注解,
2.在该类中添加该方法;
@Beanpublic MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //文件最大 factory.setMaxFileSize("10240KB"); //KB,MB /// 设置总上传数据总大小 factory.setMaxRequestSize("102400KB"); return factory.createMultipartConfig();}
------------------------------------------------------------------ 分割线 ----------------------------------------------------------------
异常五:Could not resolve view with name 'xxxxxxxxxxx' in servlet with name 'dispatcherServlet'"
出现该异常的原因:由于我的请求参数比较多,于是把它们封装成一个类,然后又在.mapper文件中引用了该类;而且Controller类用@Controller注解的;
解决方式:
给Controller类添加@RestController注解;
@Controller与@RestController区别如下
@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
------------------------------------------------------------------ 分割线 ----------------------------------------------------------------
异常六: FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of ...
出现原因:上传的文件大小超过最大限制
解决方式:
在你的Application入口类中加入,multipartConfigElement方法
/** * 设置文件上传最大值 * * @return */@Beanpublic MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //文件最大 factory.setMaxFileSize(DataSize.of(50, DataUnit.MEGABYTES)); //MB /// 设置总上传数据总大小 factory.setMaxRequestSize(DataSize.of(70, DataUnit.MEGABYTES)); return factory.createMultipartConfig();}返回搜狐,查看更多
责任编辑: