提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
1 前言
springboot 后端程序部署踩过的坑,记录在此,用来时时回忆。
2 springboot文件不能找到&多模块打包
多模块程序打包好后部署,提示了文件没有找到,文件不存在,提示信息如下:
Failed to parse configuration class [xxx]; nested exception is java.io.FileNotFoundException: class path resource [xxx] cannot be opened because it does not exist
经确认不能找到的是其他模块中文件,没有被打包成功,多模块打包时,应该在启动类模块的pom.xml文件的build标签中加入springboot插件配置。配置如下:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.3.RELEASE</version>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
3 mysql数据库连接&大小写敏感设置
程序运行时提示8.0版本需要com.mysql.cj.jdbc连接,原来com.mysql.jdbc.已经放弃使用。com.mysql.cj.jdbc连接需要加上serverTimezone=Asia/Shanghai .需要修改如下配置:
datasource:
master:
url: jdbc:mysql://localhost:3306/sea?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useUnicode=true&useSSL=false
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
使用数据库定时任务qrtz时提示qrtz表不能找到,该问题是大小写敏感问题,要么修改数据库配置,要么表名改为大写。修改mysql数据库需要加入low_case_names=1的配置,在经过多次试验后mysql不能正常启动,于是直接到qrtz表改名了,一了百了。
当然,widnows下完全不用考虑这个问题。
4 redis数据库的安装和配置修改
ubuntu 下直接sudo apt install redis-server就搞定了,简单明了,根本不用去了解 什么redis.conf;而且奇怪的是ubuntu安装好redis后,配置文件也不可访问。唯一需要注意的是默认安装没有密码。因此springboot配置中不能有密码,由于超别人的配置,在这个地方栽了很大的跟头。
springbooot中配置如下:
#redis 配置
redis:
database: 0
host: 127.0.0.1
lettuce:
pool:
max-active: 8 #最大连接数据库连接数,设 0 为没有限制
max-idle: 8 #最大等待连接中的数量,设 0 为没有限制
max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
min-idle: 0 #最小等待连接中的数量,设 0 为没有限制
shutdown-timeout: 100ms
password:
port: 6379
4 结语