最近Spring boot真是越来越火了,所以就想学习并写一个Spring boot的系列文章。以前大家一说spring的时候,都会想到Spring mvc框架,但是Spring mvc配置文件真是太多啦,而且每一个项目配置文件的内容都是差不多的,配置起来真是太费劲了。

还好现在Spring boot框架火了起来,原因就是约定大于配置,多数 Spring Boot 应用只需要很少的 Spring 配置,搭建一个spring boot项目真的是几秒就可以,大大简化了配置文件的编写。缺点就是封装太多,自动化太强,不如Spring mvc那样易懂,文档略少,版本迭代速度很快,也证明了该框架目前很火的趋势。

说了这么多,那么spring boot都有哪些优点呢?让这么多人都爱不释手

一、Spring boot优点

  • 使用 Spring 项目引导页面可以在几秒构建一个项目

  • 方便对外输出各种形式的服务,如 REST API、WebSocket、Web、Streaming、Tasks

  • 非常简洁的安全策略集成

  • 支持关系数据库和非关系数据库

  • 支持运行期内嵌容器,如 Tomcat、Jetty

  • 强大的开发包,支持热启动

  • 自动管理依赖

  • 自带应用监控

  • 支持各种 IED,如 IntelliJ IDEA 、NetBeans

  • 使测试变的简单,如JUnit、Spring Test & Spring Boot Test

  • 强大的日志框架,如logback

有点说了这么多,还是得靠自己以后慢慢摸索,这里就当是先提个醒,接下来,我们来创建Spring boot项目

二、新建spring boot项目

1. 打开idea,选择新建项目,java要1.8版本以上

新建spring boot项目_spring boot

2. 配置项目名称,包名

新建spring boot项目_spring boot_02

3. 确定spring boot版本,选择依赖

新建spring boot项目_spring boot_03

4. 确定项目存放地址

新建spring boot项目_spring boot_04

5. 删除一些文件

新建spring boot项目_spring boot_05

6. 项目主目录

新建spring boot项目_spring boot_06

7. 设置application.properties

这个文件就是用来书写spring boot项目的配置信息的。

  1. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

  2. spring.datasource.url=jdbc:mysql://localhost:3306/study?allowMultiQueries=true&serverTimezone=GMT%2B8

  3. spring.datasource.username=root

  4. spring.datasource.password=root123

上述配置是配置了mysql相关的配置信息,说明:

  • driver:使用高版本的 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依赖的版本信息)

  • url:主要由主机+端口号+数据库拼凑而成, allowMultiQueries=true代表允许sql语句执行批量操作; serverTimezone=GMT%2B8代表时区--东八区,在mysql驱动高版本中必须得设置时区。

  • username:数据库账号

  • password:数据库密码

至此,spring boot项目的基本框架就搭建成功了。项目启动成功,如图所示:

新建spring boot项目_spring boot_07

三、运行一个demo

新建 helloDemo.java文件:

  1. import org.springframework.web.bind.annotation.RequestMapping;

  2. import org.springframework.web.bind.annotation.ResponseBody;

  3. import org.springframework.web.bind.annotation.RestController;

  4.  

  5. import java.util.HashMap;

  6. import java.util.Map;

  7.  

  8. @RestController

  9. @RequestMapping("hello")

  10. public class helloDemo {

  11.  

  12.    @RequestMapping("/info")

  13.    @ResponseBody

  14.    public Map<String, String> info() {

  15.        Map<String, String> map = new HashMap<>();

  16.        map.put("name", "JKL");

  17.        map.put("sex", "男");

  18.        return map;

  19.    }

  20. }

执行效果:

新建spring boot项目_spring boot_08

四、问题集锦

java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.

报错截图:

新建spring boot项目_spring boot_09

问题分析:

这是由于 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


 

新建spring boot项目_spring boot_10