本文共 7266 字,大约阅读时间需要 24 分钟。
只要你找个好老板,找一份好工作,好好工作。
辛勤工作,早起晚归,经常加班。 早晚有一天,这个老板,会。。。更有钱。换更好的车,换更好的房。
开心一刻,每天元气满满。
缘起
我最初是2017年年初开始接触springboot的,那会还是看的某编程网站的视频教程入门的(彼时springmvc还是主流,springboot刚刚进入人们的视线)。如今也打算总结一篇,关于快速入门springboot的图文教程。构思
其实网上已经有很多类似的教程了。无外乎图文详解,视频教程。当你看此篇教程时肯定是最新的,距离spring-boot崛起已经有4年了。但是,我还是准备写一篇关于spring-boot的详细教程。记录参考官方文档遇到的坑,也是对自己的一次总结。由于是初体验,会描述的很详细,但是不会太过于深入。会包含开发工具篇,也是为了照顾想入坑的,综合性的全面讲解非常有必要。这里就不放项目创建截图了,会在下面的eclipse
和IDEA
下面放出截图。
已经使用eclipse
了,可以去下载离线插件包。下图有JavaEE
等其它ide
的版本,也有历史版本。
使用sts-eclipse
创建项目,与下载插件的eclipse
创建方式同理。
1.点击File
,再点击New
,然后点击Spring Starter Project
创建项目
2.也可以使用快捷键:Alt+Shift+N
,然后点击Spring Starter Project
创建项目
创建项目,并配置属性
配置项目,选好需要的依赖,并且定好稳定版本
你看了上面的截图,会发现和下面使用官网去创建项目是不是很类似,只是利用的工具不一样而已。tips:采用学生邮箱注册账号,永久免费使用旗舰版。
下载完后,配置maven
,2020版本之前的设置,配置阿里云的maven镜像在下面有说明。
单个项目生效(settings)
01、选中项目test 02、右键选择settings,搜索maven多项目生效(default settings)
01、点击空白处,选择FILE
,找到other settings
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
做完上面的配置后,再配置置自己下载的maven
到IDEA
中。eclipse
配置maven
也是大同小异,我就没截图了。
注意:这里选中项目进行设置,只对单个项目生效的,上面有说明的。
项目的启动就不做过多截图了,选中DemoApplication.java
通过右键点击run
运行,项目右上角也有run
选项启动。
或者在控制台使用命令运行,清理后打包再运行。这个命令适用windows
平台的CMD
控制台以及DIEA
自带的Terminal
控制台,其它方式请参考官方文档。
mvn clean package spring-boot:run
项目启动成功的界面
IDEA这个工具太强大了,里面还有很多快捷键需要你自己摸索熟练的应用。我最喜欢这款软件的原因,是她的自动保存机制真的很nice。
也不排除有的人就喜欢用eclipse,直到现在我还是用eclipse比较多,可能是先入为主吧,很多快捷键都适应了。由于是初体验,所以花了很大篇幅讲解了利用开发工具创建项目。
使用何种IDE,视你的实际工作环境而定,没必要纠结。
进入官网可以看到此时的最新稳定版是2.0版本的:2.3.4.release(release代表稳定版)
可以参考官方文档,毕竟最好的自学方式,还是采用官方文档。此时最新稳定版为2.3.4。
点击开启创建项目之旅:
详细的描述
以下是截的全图
将上面的截图拆分讲解含义
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
,还是IDEA
和eclipse
创建项目都是大同小异的。创建完后,可以使用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三层中的controller
和dao
(jpa里面就叫repository)的简单使用。
@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
首先看一看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框架的理解,便于后续的学习。
采用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/