【新手入门】SpringBoot学习(黑马程序员)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、前言🚀🚀🚀

在这里插入图片描述

☀️☀️☀️
我们都是小怪兽,最终会被正义的奥特曼打败 (●—●)


本文简介:本人是大二软件工程专业,java后端方向,学习路线:java基础->JDBC->Maven->MyBatis->SSM->SpirngBoot->Mybatisplus,通过做笔记分享到博客上的形式,激励自己学习,同时方便复习。由于水平为入门级别,如有错误,希望大佬们评论或私信斧正 Thanks♪(・ω・))ノ


二、SpringBoot简介及使用详解:☀️☀️☀️

  此篇的学习目标:
在这里插入图片描述

2.1 SpringBoot简介

① 入门案例

在这里插入图片描述
  可以看到这玩意是用来简化Spring程序的!spring干嘛的?致力于让开发者开发变得高效,springboot这哥们很简单,你spring生态理念简化开发, 但是我认为你spring程序做的稍微有点啰嗦,springboot对spring程序做简化!
  那么我们原始的springMVC开发程序是怎么样的呢?(回顾一下)

首先:我们要创建一个工程,在pom文件中配上要对应的东西,比如说servlet-api你要用,spring-mvc的资源,
在这里插入图片描述

其次:你作为一个web程序,web3.0的配置类不能少吧?咱们现在是不是用的是一个简化开发的格式呀。(如下图:)

在这里插入图片描述
再往下来: 你做spring程序,spring的配置类你要不要做?声明是个配置类,然后再写上扫描Controller(这样你就可以配置你的controller),最后这个EnableWebMvc可以带给我们很多功能。

在这里插入图片描述

做到这,整个框架只是刚搭建起来,还没有功能。最起码你是不是得提供一个control,也就是我们要提供一个bookController,至少要提供一个方法,然后设上它的映射路径

在这里插入图片描述
上述过程就是原生的spring mvc的整个开发过程,那如果我们用springboot来加速它的开发,那应该怎么做呢?请接着往下看:

创建项目

由于我的JDK是8版本,然后由于SpringBoot3.x.x版本的到来,官方称将来17及以上版本将成为主流,但是大多数的项目仍然使用JDK8,所以这里有几个推荐方法:

  1.升级JDK版本 ,安装JDK17并配置环境变量,创建项目后将SpringBoot的版本要改为3.0以下,在pom.xml中把java.version修改为1.8。
  2.推荐:创建一个新项目,建议选择JDK21,该版本兼容JDK8,可以不用配置JDK21的环境直接创建项目后,修改POM文件中SpringBoot为2.x.x和Java.version为8即可。
  3.将https://start.spring.io/或者http://start.springboot.io/替换为 https://start.aliyun.com/
而我的操作就按3的操作来的。

在这里插入图片描述

在这里插入图片描述

完了后目录结构是这样的:

在这里插入图片描述

运行完后,程序已经运行起来了,看到这个spirng图标就知道是springboot。tomcat也自动给你部署好了,如图8080端口号,非常方便。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

springboot最重要就是这里的继承。把它删了就啥都没有了。(from黑马视频)

在这里插入图片描述

这里第一个springframework.boot就是我们前面勾选的那个web。
然后第二个test,就是搞测试的,但是我现在都没搞测试,这个东西其实也可以删掉。

在这里插入图片描述

这一块其实也没什么用,也可以删掉。

在这里插入图片描述

上图是我的pom文件,下图是黑马视频里面的,整个springboot就靠着两个东西(parent和dependency)。

在这里插入图片描述

② 小总结与对比spring开发

在这里插入图片描述
最重要的两个文件,第一就是咱们的pom.xml文件,第一个就是它有一个继承,第二个就是有个依赖。我们boot现在能够开发web相关功能,就是靠的√web的这一项。

在这里插入图片描述

第二个文件Application就更简单了,就这么一个类,里面有个main方法,直接按java的运行形式就可以运行。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

why:为什么需要联网?

  因为我们的工程结构,包括这两个文件都是从网上下载来的,那要是我们要用别的工程做,没有idea那怎么办?我们就直接去spring的官网上去创建这个过程:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后点generate,步骤基本一样(跟idea)。

在这里插入图片描述

点击完后就会给你生成一个zip压缩文件,

在这里插入图片描述在这里插入图片描述

打开以后就会看到如上的东西,基本该有的都会有,里面的东西基本都一样。

③ SpringBoot项目快速启动

前后端分离合作开发:
  假设现在你开发好程序了,你和前端的开发人员配合在一块工作,前端是做页面的,你是做后台功能的,当你把程序做完以后,服务器是不是运行在你的电脑上,那前端人员如果想调一调它前面开发的页面,这时候就会有一个障碍,要连你的电脑才能做测试,那这多麻烦,你的电脑要开服务器他才能用,不开他就用不了,于是前端人员就尝试着自己安个idea,自己按个tomcat,然后把这个程序运行一下,那前端的开发人员就哭了,他说做个前端还要会你后端的技术,这个时候,其实springboot不用这样子。

在这里插入图片描述
  boot程序可以不依赖tomcat、idea这些东西运行,不过有些东西(数据库)他那边没有,所以只需要你的程序连数据库,他的程序也连对应的数据数据库,

在这里插入图片描述
在这里插入图片描述

双击执行一下package,这时它会产生一个打好的包(jar包)。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在下图这个目录(即存放jar包的目录)打开cmd,然后输入java -jar jar包名称,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

注意: spring里面这里也能导jar包,但是不能像boot一样能运行。

④ 起步依赖(简化依赖配置)

⑴程序搭建过程变简单:不用配置Tomcat
⑵开发过程也变简单了:配置类不用写
整个过程都变简单了。
在这里插入图片描述
接下来看几张我项目里面的pom文件:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

下面是黑马视频的pom文件:

在这里插入图片描述

做spring开发,你们这些开发者天天在这纠结版本问题,我把所有版本给你一个不落的整理一遍,这些版本配合在一起工作是最佳实践,以后你就不用管版本了。你只要告诉我你是用的spirngboot几,我就把这个版本对应的全都给你做好,

在这里做了无数个技术版本的管理,但你这里配上,基本的都没有用,他只是告诉你你可以引用,那有人引用吗,如何引用?

在这里插入图片描述
在这里插入图片描述

所以这个pom文件相当于是给我们配置了一系列的版本,还有要用到的版本的依赖管理,到这我们就得到一个信息了:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

以上就是pom文件第一个核心的东西。


再来看看第二个核心的:

点进去看,里面也有各种依赖(我们主要关注这些)。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

有啥好处:原来这个就是起步依赖(starter-test/starter-web),当你需要用什么技术的时候,就把这个技术对应的起步依赖加上就行了。

在这里插入图片描述

在这里插入图片描述

总结:
  到这里就知道为什么简化框架能那么快速的搭建起来,就是因为上面做了无数个版本管理,再加上下面做了无数个依赖,最终你得到一系列的东西。而这些配置都是帮你提前写好的。

在这里插入图片描述

它一执行,就会把我们的程序运行起来,而执行的时候依据是什么,就要看你起步依赖里面配的是什么了。

开发前需知:你项目组开发的spirng版本,然后找到对应的boot版本是几,根据这个版本去创建项目。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⑤ 辅助功能之切换web服务器

在这里插入图片描述
引入了tomcat-starter,就可以让我们的程序内置一个tomcat服务器了,这些功能都是辅助功能,并不是为你开发程序,给你提供对应的业务功能的,比如说我们导一个结构内的做测试,我们导一个logo back能做日志,而这个东西是启动程序用的,所以它是辅助功能。

在这里插入图片描述

我们做个新的东西,不用tomcat服务器,用Jetty服务器。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这里说Jetty比Tmocat更轻量级体现在,tomcat里面配置了所有东西,你用不用它都在,jetty呢就反过来,它里面啥都没有,你需要用呢再自己配。

2.2 基础配置

① 配置文件格式(3种)

  如何修改服务器端口号?

在这里插入图片描述

springboot提供了三种格式:

在这里插入图片描述

在这里插入图片描述

创建新的配置文件(后缀为yml,这是一种全新的配置文件)

在这里插入图片描述

第三种写法,是上一种yml的另外一种扩展格式,yaml。

在这里插入图片描述
上面这里打个port 发现没有快捷,如何操作呢:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

以后我们主要写yml这一种。

在这里插入图片描述


讲讲yaml:

在这里插入图片描述

在这里插入图片描述

yaml数据读取方式(3种):

第一种:

在这里插入图片描述

第二种:

在这里插入图片描述

第三种:

在这里插入图片描述

在这里插入图片描述

  总结:常用的方式,实际上是使用实体类来封装一个对象,然后把这个对象数据包装在一起来读取,怎么做呢?首先@Component定义为spring管理的bean,然后使用@ConfigurationProperties来给它说明你当前实体类加载哪个属性。

② 多环境开发配置

第一种:
在这里插入图片描述

第二种:

在这里插入图片描述

第三种:

在这里插入图片描述

③ 多环境命令行启动参数配置(了解)

    参数加载优先级:

在这里插入图片描述

  这一块有几个坑,下面快速回顾一下:
  第一,执行package打包之前执行clean,千万要记住这件事。第二因为我们文件的编码问题,把这些东西的字符集给改一下。

在这里插入图片描述

  第三,当你有多个配置的时候,你想验证哪一种,把其他的找个地方备份一下,不要干扰你的验证效果,而实际开发的时候,你一般只会写一种格式,不会写两种的啊。

④ 多环境开发控制

  首先明白一点,boot程序最终启动是打好的那个jar包,那么那个jar包是谁帮我们做的呢,是maven。执行package指令后得到那个jar包, 如果maven和boot都有 profile 的话,maven用来最终打包,它里边的profile应该是起主导作用,而我们boot里边的这个多环境开发,仅仅相当于maven打包过程中的一个工具。

在这里插入图片描述

在这里插入图片描述

总结:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对它的资源文件进行解析,占位符解析就ok了。

在这里插入图片描述

⑤ 配置文件分类

在这里插入图片描述
  我们之前将测试使用临时的测试,就能解决它的一些配置的问题,但是测试又来找你了,他现在临时属性太多了,我每次启动服务器,我都要加这么一堆配置,而且还容易写错,你能不能给我找一个简单的方式呢,当然可以,在我们boot中提供很多多级配置文件,通过这样的一种设定就能解决它这样的问题。

在这里插入图片描述

2.3 整合第三方技术

① Spring整合junit 与spirngboot整合junit(复习)

  原先spring整合JUnit的开发,首先上面要设置一个运行器,然后要设置加载哪一个spring的配置类或者配置文件,然后类里面要注入你要测试的对象,接下来就执行我们的测试功能就行了。

在这里插入图片描述

分析: 所有人在写这个代码的时候,有没有考虑过第一行大家写出来有什么不一样,是不是一模一样,其次我们现在的配置类是不是因为大家叫的名称不一样,如果要是都一样的话,那就不用写了对吧。所以springboot给我们做的整合要比spring整合优化了好多。
因为他的依赖有些不一样。

在这里插入图片描述

他这里边一定用了运行器,只不过大家都写干脆别写了,我boot直接帮你写好不就行了吗,这是一点,第三点,现在不用写加载哪个配置文件了,因为在我们的java源代码里边,我们有这么一个类SpringbootTestApplication(引导类),这个类就起到了配置类的作用,这个类在什么位置,就会把它所在包及其子包全部扫描一遍,所以那边写的@Service才能加载成bean。

在这里插入图片描述
在这里插入图片描述

如果光基于应用层来看boot的单元测试的话,它非常的简单,一,测试类上面写的@SpringBootTest这个东西,因为现在是自动产生的测试类,所以这句话你都没写,二,把你自己要测的资源注入进去,第三,直接用就行了。

在这里插入图片描述

② Springboot整合mybatis

  你想想前两块需要做吗,你一直在用的是spirngboot开发spirng程序,故不存在前面两种操作,我们之前做的springmvc的开发,其实就是前面打的那个勾√,把对应的起步依赖引进来就可以了。而springboot整合myabtis就必须做了,做之前先回顾一下spirng整合mybatis。

在这里插入图片描述

spring整合mybatis,首先spring的配置文件要导入这两个东西,

在这里插入图片描述

接下来是我们的JDBC配置,里边要配数据源,

在这里插入图片描述

在这里插入图片描述

总结:
其实springboot整合mybatis超级简单的,来看看这几步先不说了吧,

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

③ 基于Springboot的SSM整合案例

在这里插入图片描述

  我们想把ssm整合那个案例导进来,然后再说说我们应该怎么操作。
大体上有这么几步,首先pom文件里面起步依赖,这是你勾选的对吧,其实你不勾选,你复制粘贴过去,它也能用,勾选呢只是idea给我们提供了一种配置方式,那必要的坐标给他勾选上,比如说你要用druid,你给它导进去,因为boot的默认资源管理中是没有druid的坐标的。
  第二个咱们是不是得把数据源的端口,这些东西给配备啊,这是必要的。
  剩下来配置类,之前咱们做spring的时候是不是有一堆配置类现在都没了,因为我们现在没有写任何配置,是不是spring、springmvc的环境跑的,所以这全部删掉。
  接下来dao别忘了把那个@Mapper加上,最后把测试一跑就ok了。
  那这里面有个问题,页面呢,我们再把这个页面处理一下,那页面如何处理呢,等前面咱们做完后再回来看。


咱们这里已经把之前那个ssm项目导入,然后开始改,

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

把它复制过去粘贴到it.heima目录下面

在这里插入图片描述
在这里插入图片描述
  


config层:
  我们从config去看,整个目录其实都可以干掉了,因为所有配置我们都可以删除了。

在这里插入图片描述

  回头这些东西是不是转换成配置了,所以把这个删掉了。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  上面这个是不是处理静态页面的,等页面拷过来,我们再说处理方案。然后把config目录整个干掉。
  


domain层:
在这里插入图片描述

dao层:

在这里插入图片描述

在这我们要加一个@Mapper,这个东西是干什么用的?是不是让springboot可以扫描到这个组件,然后生成它的自动代理:改造完如下图:

在这里插入图片描述
  


service层:
  在service里面接口不用管它,在这里插入图片描述
这里面没有什么过多需要说的东西,你呢就记得一点,这个有个地方有个id==1,一会你测试的时候,如果说你要查一的这个他会抛异常。
  


control层:
  对于control里边没有任何变化,然后Code、Result包括异常处理器这些,我们是不是都放在控制器下了。如果你要放到那个config目录下的话你别删错了,这些东西还要用的。

  


Springboot核心主导类:

resource:

在这里插入图片描述

把application.properties改成yml格式,改完以后把jdbc.properties里边的信息配置到yml里边,

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

到这呢,咱们这一套东西就全部做完了。

  

三、总结:🍓🍓🍓

  时隔七天左右,springboot的学习到此告一段段落,接下来开始进入mybatisplus的学习。
Alt

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值