小白学习sprint boot容易遇到了一些问题
1. Idea 新建springboot项目 spring-boot-starter-parent 包maven依赖报错
解决方式
解决方式一:
1. 重新敲一遍配置,不要复制,复制会有各种问题, 重新敲一遍重新导入就没有问题了
方式二:换镜像
因为你未配置maven镜像使用的是默认的,建议在maven的setting中配置国内镜像;
方式三:在pom.xml配置文件中加入下面这些配置
<repositories> <repository> <id>spring-snapshots</id> <url>http://repo.spring.io/libs-snapshot</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <url>http://repo.spring.io/libs-snapshot</url> </pluginRepository> </pluginRepositories>
2. expected START_TAG or END_TAG not TEXT (position: TEXT seen ...
解决方法:
pom.xml中部分内容格式不正确,整理格式,删除多余空格。
3. @ResponseBody详解
注意:在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。
4. The requested URL /spring-boot/docs/2.2.2.RELEASE/reference/html/configuration-metadata.html was not
解决方法,将请求地址栏版本改为2.1.9
5. spring-boot配置文件中server.context-path不起作用
spring-boot配置文件中server.context-path=/XXXXXXX不起作用:
原因是更新后写法变成了server.servlet.context-path=/XXXXXX,这样写即可
https://blog.csdn.net/han_ying_ying/article/details/80454176
6. 解决 idea 运行 Spring Boot 项目启动慢的问题
解决方案:
1. hostname命令查看自己的 hostname
2. 在C:\windows\system32\drivers\hosts配置文件中添加下面的配置
127.0.0.1<两个tab>LAPTOP-H4HP3NC9 255.255.255.255<两个tab>broadcasthost ::1<两个tab>LAPTOP-H4HP3NC9
7. 在springboot中表单中设置put请求不成功
<input type="hidden" name="_method" value="put" th:if="${emp!=null}"/>
注意在新版本的SpringBoot中,这个put请求不发生作用。原因是因为springboot自动配置,帮我们省略了第一步的配置,上面代码方法就是为了实现自动配置,但是因为注解@ConditionalOnProperty限制了自动配置,默认false不开启配置,所以页面的put提交无法使用。 解决办法: properties配置文件中配置,使之开启自动配置: spring.mvc.hiddenmethod.filter.enabled=true。
8. 使用请求转发导致前端页面css样式消失的原因和解决办法
因为是转发过来的请求,所以当前请求的相对路径是和后台的相对路径是一样的,而前端页面中很多css样式文件的引入默认是前端的相对路径,前端的相对路径和后端的相对路径不一致,这时候我们需要的样式文件可能就获取不到,从而样式消失
解决办法是把前端路径设置成绝对路径,这样就转发请求时就不受后台相对路径的影响了
9. driver-class-name: com.mysql.jdbc.Driver报错
cannot resolve class or package
把pom.xml文件中mysql的依赖的runtime运行范围去掉
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <!--<scope>runtime</scope>--> </dependency>
10. java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than
这个是MySQL时区问题
解决方案
1.更换成低版本的MYSQL的依赖;
2.这时候只要在MySQL连接数据库的url中加入?serverTimezone=UTC即可。
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/markov_demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
报错原因
SpringBoot整合MySQL的依赖包版本过高,在高版本的MySQL依赖中数据库和系统时区差异所造成的。系统为SQL默认美国时间,而我们中国要比他们迟8小时,因此将时区设置为当前系统时区即可,采用+8:00格式
11. SpringBoot 2.x新版本整合jdbc执行SQL文件建表失败无报错
在用SpringBoot整合JDBC的时候 莫名其妙的发现建表失败了并且没有报错提示
在Spring2.x新版本中 要执行sql文件 还须配置spring.datasource.initialization-mode=always 表示始终执行初始化
spring:
datasource:
initialization-mode: always
否则的话 默认仅初始化嵌入的数据源 而不会初始化所有数据源 因而需要手动指定