首先新建一个Spring Boot项目,常规步骤如下
本博客中,包名为blog,项目名为test。
项目创建完成后修改以下文件:
pom.xml
- 改为
2.1.3.RELEASE
,为了能用JPA
- 添加以下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
- 改好后右击pom.xml→Maven→Reimport
/src/test/java/com.blog.test/TestApplicationTests
替换为以下:
package com.blog.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestApplicationTests {
@Test
public void contextLoads() {
}
}
/src/main/resources/application.properties
- 重命名,把后缀名改成
.yml
,比较直观 - 添加以下配置:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://url/数据库名?characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password:
jpa:
hibernate:
ddl-auto: update
show-sql: true
问题整理
- 数据库存储的时间与前端收到的时间不一致:
在实体类的Date属性上加上
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
还能方便规定格式,时区对应上面application.properties中数据库配置url的时区设置
- Spring Boot项目打包成war:https://blog.youkuaiyun.com/qq_34381084/article/details/81485319
- Maven引入本地jar
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<scope>system</scope>
<version>1.1</version> <!-- groupId、artifactId和version随便写就行,version在打包成war的时候必须要有 -->
<systemPath>${basedir}/src/main/resources/lib/json-20190722.jar</systemPath>
</dependency>
- 打包成war发布时报错找不到本地jar包:https://blog.youkuaiyun.com/bebmwnz/article/details/90484528
2023年9月16日更新(上面内容为2020年2月总结,版本比较老,但是亲测还可以用就是警告比较多)
-
部署后提示地址已在使用:springboot内嵌Tomcat服务器和服务器本地运行的Tomcat服务器冲突了,jar包部署的(jar包运行不需要通过本地Tomcat)可以关闭本地Tomcat,war包部署的项目就是因为没有去掉内嵌Tomcat服务器
-
部署后连接服务器本地数据库失败:
如果大面积报错的下面包含这种ssl的报错
就在application文件中数据库的url最后面加入关闭ssl的代码
url: jdbc:mysql://url/数据库名?characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
-
经过上面的debug,实践证明war包在部署时Tomcat的日志并不会包含springboot项目运行时的所有报错,一旦产生报错就会404,服务器的数据库也不会有相应的运行结果,jar包运行的方式更加适合看报错,而且运行方式更加简单
-
IDEA编写的springboot项目打包成jar:在用IDEA创建项目时选择打包方式为jar,然后用这篇文章的方法一:https://blog.youkuaiyun.com/weixin_57529171/article/details/122828418
-
ubuntu运行jar包:
直接运行,退出远程连接时会停止运行,但是可以看日志和报错,适合测试时java -jar jar包的绝对路径或者路径
ubuntu后台运行jar包,不直接显示,作为一个进程运行,退出时不会停止运行:https://www.cnblogs.com/herd/p/17189329.html