天天看点

新建spring boot项目

最近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项目

2. 配置项目名称,包名

新建spring boot项目

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

新建spring boot项目

4. 确定项目存放地址

新建spring boot项目

5. 删除一些文件

新建spring boot项目

6. 项目主目录

新建spring boot项目

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项目

三、运行一个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. import java.util.HashMap;
  5. import java.util.Map;
  6. @RestController
  7. @RequestMapping("hello")
  8. public class helloDemo {
  9.    @RequestMapping("/info")
  10.    @ResponseBody
  11.    public Map<String, String> info() {
  12.        Map<String, String> map = new HashMap<>();
  13.        map.put("name", "JKL");
  14.        map.put("sex", "男");
  15.        return map;
  16.    }
  17. }

执行效果:

新建spring boot项目

四、问题集锦

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

报错截图:

新建spring boot项目

问题分析:

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

继续阅读