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版本以上

2. 配置项目名称,包名

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

4. 确定项目存放地址

5. 删除一些文件

6. 项目主目录

7. 设置application.properties

这个文件就是用来书写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相关的配置信息,说明:

  • 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文件内右键点击Mavenshow Effective POM中查看对应pom依赖的版本信息)
  • url:主要由主机+端口号+数据库拼凑而成,allowMultiQueries=true代表允许sql语句执行批量操作;serverTimezone=GMT%2B8代表时区–东八区,在mysql驱动高版本中必须得设置时区。
  • username:数据库账号
  • password:数据库密码

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

三、运行一个demo

新建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")
    public Map<String, String> info() {
        Map<String, String> map = new HashMap<>();
        map.put("name", "JKL");
        map.put("sex", "男");
        return map;
    }
}

@RestController Spring4 之后新加的注解,原来返回json需要@ResponseBody配合@Controller,现在一个顶俩

执行效果:

四、将application.properties替换为application.yml

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/company?allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root123

server.port=8081
server.servlet.context-path=/spring-boot
# 项目访问路径为:http://localhost:8081/spring-boot

替换为:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/company?allowMultiQueries=true&serverTimezone=GMT%2B8
    username: root
    password: root123
server:
  port: 8081
  servlet:
    context-path: /spring-boot
# 项目访问路径为:http://localhost:8081/spring-boot

五、问题集锦

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


更多精彩干货内容,请关注微信公众号,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

create17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值