博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot初体验以及解决遇到的问题
阅读量:4228 次
发布时间:2019-05-26

本文共 7266 字,大约阅读时间需要 24 分钟。

只要你找个好老板,找一份好工作,好好工作。

辛勤工作,早起晚归,经常加班。
早晚有一天,这个老板,会。。。更有钱。换更好的车,换更好的房。

开心一刻,每天元气满满。

前言

缘起

我最初是2017年年初开始接触springboot的,那会还是看的某编程网站的视频教程入门的(彼时springmvc还是主流,springboot刚刚进入人们的视线)。如今也打算总结一篇,关于快速入门springboot的图文教程。

构思

其实网上已经有很多类似的教程了。无外乎图文详解,视频教程。当你看此篇教程时肯定是最新的,距离spring-boot崛起已经有4年了。但是,我还是准备写一篇关于spring-boot的详细教程。记录参考官方文档遇到的坑,也是对自己的一次总结。由于是初体验,会描述的很详细,但是不会太过于深入。会包含开发工具篇,也是为了照顾想入坑的,综合性的全面讲解非常有必要。

文章目录

正文

开发工具篇

一、SpringTools官网直通车

这里就不放项目创建截图了,会在下面的eclipseIDEA下面放出截图。

二、eclipse官网直通车。

已经使用eclipse了,可以去下载离线插件包。下图有JavaEE等其它ide的版本,也有历史版本。

在这里插入图片描述

使用sts-eclipse创建项目,与下载插件的eclipse创建方式同理。

1.点击File,再点击New,然后点击Spring Starter Project创建项目

2.也可以使用快捷键:Alt+Shift+N,然后点击Spring Starter Project创建项目

创建项目,并配置属性

在这里插入图片描述

配置项目,选好需要的依赖,并且定好稳定版本

在这里插入图片描述

你看了上面的截图,会发现和下面使用官网去创建项目是不是很类似,只是利用的工具不一样而已。

三、IDEA官网直通车。

tips:采用学生邮箱注册账号,永久免费使用旗舰版。

下载完后,配置maven2020版本之前的设置配置阿里云的maven镜像在下面有说明

单个项目生效(settings)

01、选中项目test
02、右键选择settings,搜索maven

多项目生效(default settings)

在这里插入图片描述

01、点击空白处,选择FILE ,找到other settings

02、选择default settings
03、找到Build, Execution, Deployment这一栏
04、选择Bulid Tools点击展开
05、然后配置maven,这样就解决了IDEA一次设置所有新建的maven项目都生效。

2020版本以及后面的设置

#后面配置maven同上File -> new project settings -> settings for new projects

idea的版本不用太新或者比较旧的版本,稳定就行。我个人一直沿用的2017.1的版本,用作测试完全没问题的。打开IDEA首先显示已经创建过的项目

在这里插入图片描述

进入主界面创建项目方法

在这里插入图片描述

创建项目

这里会选择你的启动IDEA默认配置的JDK版本,当然右上角的New可以配置安装其它的JDK版本。

在这里插入图片描述

进入项目配置文件列表

我选择的是JDK8版本与我默认使用版本保持一致。你也可以视情况而定,这个并不冲突。第三种创建方式对项目配置列表有的详细的描述,这里就不做过多介绍。

在这里插入图片描述

配置pom依赖

为了演示需要,我选择了Spring Web选项。

在这里插入图片描述

配置完后,点击finish创建项目

project:项目名

project location:工作空间,可以自行选择修改的。

在这里插入图片描述

配置maven镜像

官方默认的镜像地址是国外的,懂得都懂,龟速前进。配置阿里云的镜像地址,瞬间飞一般的感觉,纵享丝滑,仿佛没戴套子。

配置settings.xml文件,设置repo存储地址。

在这里插入图片描述

将下面的阿里云maven镜像地址配置到mirrors中。

当然也可以配置到pom.xml文件中,单个项目生效。

alimaven
aliyun maven
  
http://maven.aliyun.com/nexus/content/groups/public/
central

做完上面的配置后,再配置置自己下载的mavenIDEA中。eclipse配置maven也是大同小异,我就没截图了。

注意:这里选中项目进行设置,只对单个项目生效的,上面有说明的。

在这里插入图片描述

项目的启动就不做过多截图了,选中DemoApplication.java通过右键点击run运行,项目右上角也有run选项启动。

或者在控制台使用命令运行,清理后打包再运行。这个命令适用windows平台的CMD控制台以及DIEA自带的Terminal控制台,其它方式请参考官方文档。

mvn clean package spring-boot:run

项目启动成功的界面

在这里插入图片描述

在这里插入图片描述

IDEA这个工具太强大了,里面还有很多快捷键需要你自己摸索熟练的应用。我最喜欢这款软件的原因,是她的自动保存机制真的很nice。

也不排除有的人就喜欢用eclipse,直到现在我还是用eclipse比较多,可能是先入为主吧,很多快捷键都适应了。由于是初体验,所以花了很大篇幅讲解了利用开发工具创建项目。

使用何种IDE,视你的实际工作环境而定,没必要纠结。

四、spring-boot官网直通车。

进入官网可以看到此时的最新稳定版是2.0版本的:2.3.4.release(release代表稳定版)

在这里插入图片描述

可以参考官方文档,毕竟最好的自学方式,还是采用官方文档。此时最新稳定版为2.3.4。

五、通过spring官网快捷创建项目

点击开启创建项目之旅

详细的描述

以下是截的全图

在这里插入图片描述

将上面的截图拆分讲解含义

在这里插入图片描述

Project:采用maven或者其它方式构建

Language:采用java语言或者其它语言

在这里插入图片描述

Dependencies:pom文件依赖,勾上spring-web

在这里插入图片描述

Spring Boot版本:2.3.4目前最新稳定版

Project Metadata:值得注意的几个点
Group:项目组名,例如com.kart
Artifact:项目名,例如demo
Description:项目描述
Packaging:打包,Jar包或者War包
Package name:项目包名,例如com.tcloud.demo.
Java版本:采用JDK8或者11,具体是实际情况而定

在这里插入图片描述

GENERATE CTRL+:点击创建项目

windows下面的CMD命令操作我就不做过多描述。

习惯了linux下的命令操作,反而不习惯win的命令操作了。

使用CMD命令提示符或者win10自带的win_powershell都可以,以管理员身份运行

切换到D盘。与linux不同,linux是一个文件系统

d:

切换到具体目录,这点和linux是一样的

#例如 cd 接具体目录cd /workspace/demo

mvn命令运行项目

mvn clean package spring-boot:run

其实,使用开发工具创建项目和这种模式差不多,区别不大。无论是sts-eclipse,还是IDEAeclipse创建项目都是大同小异的。创建完后,可以使用eclipse或者IDEA导入(import)项目,只是使用工具创建项目更加方便而已。

工欲善其事,必先利其器。 假如创建项目折腾半天,你可能会半途而废。所以上面花了很大的篇幅介绍了各种工具的使用,如何快速创建springboot项目。开发工具篇到此就全部介绍完了。后面衔接解决问题篇,介绍了我遇到的一些问题,将来你可能也会遇到。

解决问题篇

一、发现问题

idea启动spring-boot项目问题

No active profile set, falling back to default profiles: default

可以选择忽略掉,程序运行起来是没问题的

Process finished with exit code 0

翻译:程序执行完毕并退出

二、思考问题

应该与spring-boot版本无关。

在控制台,使用以下命令执行是没问题的。

mvn clean package spring-boot:run

所以猜测是不是idea启动与pom文件的某个设置属性有关,由此发现tomcat设置有问题。

三、解决方案

万一遇到jar包冲突

org.springframework.boot
spring-boot-starter-tomcat
provided

使用eclipse for javaee:启动毫无问题。

使用idea屏蔽掉<! --< scope >provided</ scope > -->这个属性,启动不会退出。

保留一点悬念。关于scope属性的用法,这里不做描述,请阅读官方文档。解决问题篇到此就全部描述完了,后面衔接具体讲解篇,会简单的涉及到mvc三层中的controllerdaojpa里面就叫repository)的简单使用。

具体讲解篇

一、controller的简单使用

常用的一些注解

@Controller

作用:处理http请求

@RestController

作用:spring4之后新加的注解,原来返回json数据需要ResponseBody+@Controller配合使用。

//(旧版,特殊需求需要用到)@RequestMapping

作用:配置url映射

@GetMapping

作用:以get形式提交,一般用作查询

@PostMapping

作用:以post方式提交,用于修改或者更新

@PathVariable

作用:获取url中的数据

例如

@GetMapping("/hello/{id}")    public String Hello(@PathVariable("id") Integer id){
return "id:" + id; }

测试:默认启动端口为8080,你不改也行,我这里演示需要就改了。

http://localhost:8081/hello/100

返回结果:id=100

@RequestParam

作用:获取请求参数的值

例如

// 这样设置,url后必须传ID    @GetMapping("/must")    public String test(@RequestParam("id") Integer id){
return "id:" + id; } // 这样设置,url后非必须传ID,可以设置默认值 @GetMapping("/normal") public String testNotSetId(@RequestParam(value = "id",required = false,defaultValue = "0") Integer id){
return "id:" + id; }

测试

http://localhost:8081/test?id=100

返回结果:id:100

二、Repository

简介

首先看一看JPA、Hibernate、MyBatis以及JDBC的简介。

JPA

抽象存储库的实现是Java应用程序框架Spring的领域驱动设计的关键构建块。

透明地支持所有可用的JPA实现,并支持CRUD操作以及方便地执行数据库查询。

Hibernate

Hibernate为Java提供了一个开源的对象关系映射框架。版本3.2及更高版本提供了Java 持久化 API的实现。Gavin King创立了Hibernate项目。他代表JBoss参加JSR220,这是负责开发JPA的JCP专家组。这引发了围绕JPA和Hibernate之间关系的持续争议和猜测。Sun Microsystems表示,这些想法来自几个框架,包括Hibernate和Java 数据对象。

MyBatis

是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来。MyBatis是在Apache许可证 2.0下分发的自由软件,是iBATIS 3.0的分支版本。其维护团队也包含iBATIS的初创成员。

JDBC

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。JDBC是面向关系型数据库的。

Spring Data JPA

参考官方文档,进行学习。

版本控制

简单示例

通过以上给出的jpa的简单示例链接,你可以到github上研究研究。

spring官方将jpa集成到了spring容器里面,使用起来更加方便快捷。

以下引用了spring官方的描述,有的是自己翻译调整的,可能描述有瑕疵。

Spring Data JPA是这个庞大家族Spring Data系列的一部分,可轻松实现基于JPA的存储库。

此模块处理对基于JPA的数据访问层的增强支持。
它使构建使用数据访问技术的Spring支持的应用程序变得更加容易。

实现应用程序的数据访问层已经很长一段时间了。为了执行简单查询以及执行分页和审核,必须编写太多样板代码。Spring Data JPA旨在通过将工作量减少到实际需要的数量来改善数据访问层的实现。作为开发人员,您将编写包括自定义finder方法在内的存储库接口,Spring会自动提供实现。

Spring Data JDBC

是这个庞大家族spring-data系列的一部分,对JDBC数据访问进行增强支持,构建更容易。

现在没有提供JPA的缓存,延迟加载。旨在简洁,功能有限,不需要过于复杂的功能。
未来将会回写很多JPA里面支持的其它的功能。

联系

Spring Data JPA、Hibernate、MyBatis这几个比较火的ORM持久层框架。

Hibernate和MyBatis是对JDBC进行了封装,底层实现就是JDBC,阅读源码不难看出。

Spring DataJPA是对Hibernate进行了封装,使用更加方便。

了解完上面的一些理论知识之后,可以加深你对orm框架的理解,便于后续的学习。

配置数据库jdbc_config_datasource

采用application.properties文件形式

#jdbc_config   datasourcespring.datasource.driver-class-name=com.mysql.jdbc.Driver#autoReconnect=true这个属性表示自动重连,具体以实际开发需求为准。spring.datasource.url=jdbc:mysql://127.0.0.1:3306/kart?useUnicode=true&characterEncoding=UTF-8&autoReconnect=truespring.datasource.username=rootspring.datasource.password=root配置数据源#Hikari will use the above plus the following to setup connection poolingspring.datasource.type=com.zaxxer.hikari.HikariDataSource

采用application.yml文件形式,推荐这种方式配置

spring:  datasource:    driver-class-name: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://127.0.0.1:3306/kart?characterEncoding=utf8    username: root     password: 123456    type: com.zaxxer.hikari.HikariDataSource

pom.xml文件相应的也需要配置

这里不用设置版本,spring-boot已经为你设置好了。这就是spring-boot的好处,减少配置。

org.springframework.boot
spring-boot-starter-data-jpa

最后就是Java代码的书写,当然这里就不贴代码了。留个悬念,自行参考官网的示例。

JPA使用起来很方便,推荐去官网学习学习

小声哔哔

只要你找个好老板,找一份好工作,好好工作。

辛勤工作,早起晚归,经常加班。
早晚有一天,这个老板,会。。。更有钱。换更好的车,换更好的房。
再给我一次机会,我想回到昨天,安眠药吃多了。

好吧,上面的引用都是玩笑话。用心创作,学无止境。你会发现,了解的越多,不了解的越多。好了,到此为止就是此篇文章的全部内容了,能看到这里的都是帅哥靓妹啊!!!善于总结,其乐不穷。好记性不如烂笔头,多收集自己第一次尝试的成果,收获也颇丰。你会发现,自己的知识宝库越来越丰富。点关注,不迷路。

转载地址:http://rzcqi.baihongyu.com/

你可能感兴趣的文章
一个有趣的python项目---一个好玩的网站
查看>>
git常用命令总结
查看>>
Protobuf了解一下?
查看>>
超越Selenium的存在---Pyppeteer
查看>>
复仇者联盟4:终局之战剧透
查看>>
Msgpack有没有兴趣了解一下?
查看>>
探索一家神秘的公司
查看>>
PDF转Word完全免费?这么好的事情我怎么不知道????
查看>>
数据解读---B站火过蔡徐坤的“鬼畜“区巨头们
查看>>
Squid代理服务器搭建亿级爬虫IP代理池
查看>>
JupyterNotebook‘s Magic
查看>>
在Linux 上部署Jenkins和项目
查看>>
Python+requests+unittest+excel实现接口自动化测试框架
查看>>
那些年我们听过的互联网公司的套路?
查看>>
谈谈python里面那些高级函数
查看>>
40行代码带你免费看《海贼王-和之国》篇章
查看>>
搭建炫酷的服务器监控平台
查看>>
垃圾分类:人机搭配,干活不累
查看>>
Nginx
查看>>
Memcached,session共享
查看>>