最近Spring boot真是越来越火了,所以就想学习并写一个Spring boot的系列文章。以前大家一说spring的时候,都会想到Spring mvc框架,但是Spring mvc配置文件真是太多啦,而且每一个项目配置文件的内容都是差不多的,配置起来真是太费劲了。 还好现在Spring boot框架火了起来,原因就是约定大于配置,多数 Spring Boot 应用只需要很少的 Spring 配置,搭建一个spring boot项目真的是几秒就可以,大大简化了配置文件的编写。缺点就是封装太多,自动化太强,不如Spring mvc那样易懂,文档略少,版本迭代速度很快,也证明了该框架目前很火的趋势。 说了这么多,那么spring boot都有哪些优点呢?让这么多人都爱不释手
有点说了这么多,还是得靠自己以后慢慢摸索,这里就当是先提个醒,接下来,我们来创建Spring boot项目
这个文件就是用来书写spring boot项目的配置信息的。
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/study?allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root123
上述配置是配置了mysql相关的配置信息,说明:
mysql-connector-java.jar
,之前的配置 com.mysql.cj.jdbc.Driver
会被spring boot 2.1.0提示已被废弃,建议使用 com.mysql.cj.jdbc.Driver
。像本项目,使用的 mysql-connector-java.jar
版本就是 8.0.13
。(注:可在pom.xml文件内右键点击 Maven
的 showEffectivePOM
中查看对应pom依赖的版本信息)allowMultiQueries=true
代表允许sql语句执行批量操作; serverTimezone=GMT%2B8
代表时区--东八区,在mysql驱动高版本中必须得设置时区。至此,spring boot项目的基本框架就搭建成功了。项目启动成功,如图所示:
新建 helloDemo.java
文件:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("hello")
public class helloDemo {
@RequestMapping("/info")
@ResponseBody
public Map<String, String> info() {
Map<String, String> map = new HashMap<>();
map.put("name", "JKL");
map.put("sex", "男");
return map;
}
}
执行效果:
四、问题集锦
java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
报错截图:
问题分析:
这是由于 mysql-connector-java.jar
高版本所导致,高版本要求jdbc连接的url后面必须要有时区的设置。
解决办法:
在jdbc的url后面加上 serverTimezone=GMT%2B8
,即可解决问题。 GMT%2B8
代表时区东八区。
例如: spring.datasource.url=jdbc:mysql://localhost:3306/study?allowMultiQueries=true&serverTimezone=GMT%2B8