首页 > 其他分享 >Springboot快速入门及SSM整合

Springboot快速入门及SSM整合

时间:2024-12-22 12:58:47浏览次数:5  
标签:里面 Springboot 配置文件 jar 配置 boot SSM yml 入门

入门案例

开发步骤

第一步

  • 创建模块

选择Spring Initializr

JDK选择1.8

image-20230724094653988

第二步

  • springboot版本如果3.0以上的,将不支持jdk8,就算选了jdk8也没用

  • Name随便起

  • 一定要注意Java版本 ,因为前面JDK选的是 1.8.0 ,所以这里一定要选择8

image-20230724095322007

第三步

  • 选择版本小的 ,这里选择2.5.0 ,但是发现没有 ,先不用管 ,到后面pom文件里面再改 ,现在先选一个小的 ,也就是不是3开头的

image-20230724095627372

  • 选择Web的SpringWeb

image-20230724095652368

创建成功

image-20230724100214178

开启运行

  • 编写controller

image-20230724101024598

image-20230724101030949

  • 点击运行Application

image-20230724100922813

  • 在postman中测试 ,注意端口号

image-20230724100956169

image-20230724101000611

修改pom

  • pom中我们可以把name和description删掉 ,没用

image-20230724101323171

入门案例解释

  • 整个工程其实就是pom中两个东西帮我们干活 ,一个parent一个web

image-20230724101437407

开发步骤总结

image-20230724101546765

image-20230724101619151

image-20230724101628903

image-20230724101641885

修改springboot版本方法

  • 在pom中找到parent标签 ,修改version ,可以修改springboot的版本

image-20230724101224928

官网开发

  • 进入官网 ,找到Projects->SpringBoot

image-20230724103123740

  • 找到QuickStart

image-20230724103156195

image-20230724103426560

  • 点击Generate

image-20230724103528156

  • 下载压缩包

  • 里面的配置和自己创建的一模一样

image-20230724103546199

  • 所以这也是为什么创建springboot工程要联网 ,走的是Spring的页面

快速启动

步骤

  • 前端人员要想调试代码 ,还需要连接后端的服务器 ,但是为了避免这个麻烦 ,后端人员可以直接把打包好的jar包发送给前端 ,然后让前后端一起连接数据库就好

image-20230724103854121

  • 点击Maven里面的lifecycle里面的package包 ,把项目进行打包

image-20230724104003376

image-20230724104134631

  • target文件夹里面找到jar包

image-20230724104158545

  • open in explore

image-20230724104226334

  • 然后把jar包发给前端 ,文件放在前端那个文件夹 ,就在那个文件夹敲个cmd ,然后打个 java -jar s(点个Tab就补全了)

image-20230724104523131

  • 回车 ,项目启动完成

image-20230724104557324

  • postman测试

image-20230724104654726

image-20230724104702772

总结

image-20230724104720559

image-20230724104806309

  • 注意 : 任何的Maven程序都可以执行Package指令 ,也可以打出jar包 ,但是以前使用Maven工程打出的jar包不能直接使用Java -jar指令执行 ,但是我们boot程序就可以使用这个指令去执行 ,其实就是依赖上面的插件 ,这个插件不止把程序打成jar包 ,还把其他程序要用的jar包也打到这个jar包里面了 ,并且这个打的jar包还设置了一个入口程序 ,如果不设置 ,那么程序无法知道从哪里运行 ,这一切都依赖于上面的插件

简介

image-20230724110258666

  • Springboot后台已经做好了版本控制 ,我们只需要在pom文件中 ,告诉boot需要哪些包就可以了 ,版本号不需要我们指定 ,boot会在后台自动匹配添加的依赖的版本号

起步依赖

image-20230724110731248

  • 做程序 ,想要什么技术 ,只要把对应的起步依赖 ,也就是那些名字里带test的加上就好了 ,里面所有的东西已经配好了

image-20230724111211783

  • 以后到企业里面用springboot ,不是要用最新的 ,而是项目组确认要用spring5.2.10这个版本 ,就去查5.2.10对应的版本boot是几 ,然后就用那个版本就可以 ,以后做项目都用的是最合理的版本

辅助功能

  • 在下图的依赖中 ,在web的start中引入了Tomcat的start ,就可以让我们的程序内置tomcat服务器

image-20230724111523263

上面pom中的start-web中有start-tomcat

image-20230724111634711

image-20230724111800082

切换技术

  • 如果不想用tomcat技术 ,想要用jetty服务器 ,那么我们可以采用排除依赖的方式 ,(而不是可选依赖) ,

  • 在pom中找到start-web ,在这个起步依赖下面加上一段exclusions ,把内置的tomcat给排除了(这个Tomcat在点进去start-web的里面) ,然后

image-20230724112236462

  • 然后在这段以来下面加上一个jetty的依赖 ,注解复制上面的内容就好 ,把后面的Tomcat改成jetty

image-20230724112524584

  • 我们发现照样可以启动

image-20230724112622934

  • 上述总结

image-20230724112831683

  • 程序运行的时候就是靠引导类去运行 ,以后开发的时候 ,运行找引导类 ,换技术 ,加技术就加start ,就可以搞定

基础配置

配置文件中的信息很少有双引号或者单引号

配置文件格式(三种)

image-20230724113355116

image-20230724113407962

properties

  • 找到文件 ,添加内容port = 80

image-20230724113805840

image-20230724113813747

  • postman

    • 可以发现链接可以直接改成localhost ,不用再加:端口号了

image-20230724113850594

yml(主流)

  • boot中的配置类我们一般都写application..

image-20230724114045588

image-20230724114059029

image-20230724114108866

  • 注意前面一定要有空格

yaml

  • 是yml的另一种格式

image-20230724114334348

image-20230724114331056

总结

  • 如果三个配置文件都配上 ,那么优先级properties>yml>yaml

  • (自动提示功能(敲一个port就能自动弹出剩余提示)消失解决方案)如果添加了配置文件 ,但是IDEA不认 ,那么我们可以手动加配置文件 ,按照下图顺序就可以

image-20230724114657154

image-20230724114818336

  • 以后配置主要选择yml方式

image-20230724114936037

  • 比如增加一个日志

    • 配置根路径对应的级别为warn ,那就是只看warn的信息 ,我们一般默认是info级别

image-20230724115115095

yaml

配置

  • 最主要最主要的就是那个空格 ,下一级的空格一定比上一级要多

image-20230724115314421

image-20230724115515358

  • 如果一个属性对应多个值 ,那么就是数组格式

  • yaml数组数据

image-20230724115604298

数据读取方式(三种)

  • 配置文件

image-20230724120235996

第一种
  • 如果想要读取某一个属性 ,直接使用名称就可以读取

image-20230724145024664

image-20230724150246239

第二种
  • 自动装配

  • 图中的Enviroment是springframework这个包里面自带的类

image-20230724145058167

image-20230724150259377

第三种
  • Bean

image-20230724145702662

先定义为一个Bean ,受Spring控制

告诉程序从当前配置中读属性 ,前缀就指的是属性的前缀

image-20230724145710950

image-20230724145806674

  • 这种配置方法的应用之处 ,在后期配myBatis的时候 ,在配置文件中也会有像enterprise的信息 ,配上之后 在MyBatis框架内会定义一个这样的类然后把信息加载走 ,然后在框架内部 ,它就可以通过某个对象把信息得到

image-20230923154636820

image-20230923154625945

  • 所以以后在配置yaml的时候 ,有些信息一定要按照人家的格式来 ,不然就没法用

  • 下图 ,因为已经是一个Bean了 ,使用自动装配就可以把这个类加载进来

image-20230724150336258

多环境开发

多环境开发配置

image-20230724150535083

  • 如何在上线的时候配置多环境 ,同时在多环境中任意切换使用

第一种 : 过时写法(常用)

注意三条短杠的书写

image-20230724151213848

第二种 : 不过时写法

注意三条短线把他们分开

image-20230724151346623

第三种 : properties文件 ,这种格式在于 ,不同的端口要创建不同的文件 ,相较于第一种还是比较麻烦

image-20230724153811964

image-20230724153709089

image-20230724153854624

image-20230724153910225

多环境命令行启动参数

  • 打包前执行一下clean ,排除上一次运行对新一次运行的影响

  • 另外打包的时候 ,配置文件里面有中文会打包失败 ,我们需要设置一下 ,把Project Encoding改一下 ,改成UTF-8

  • 下面的properties也改成UTF-8

image-20230724154615356

image-20230724154739442

  • 有多个配置文件 ,记得把另外的备份一下 ,把另外的文件放到bak文件夹里面 ,实际开发的时候一般只会用其中一种配置文件格式

image-20230724160042246

  • 改完之后看一下配置文件是不是乱码 ,是乱码修复之后再打包

  • 打包

image-20230724154914215

  • 运行 ctr -c就可以停下来

  • 修改环境

  • 下面的这些就是命令行参数 ,注意前面有两个-

image-20230724155337004

image-20230724155348946

  • 修改好多参数

image-20230724155443414

  • 下图展示修改dev的端口号

image-20230724155721785

  • 官网文件优先级解释

image-20230724155613361

多环境开发兼容问题

  • Maven与boot多环境兼容问题

  • 具体操作见ssm 第100集

  • Maven和SpringBoot中都有多环境开发 ,如果两个都配置了多环境 ,那么应该以谁为主呢 ,也就是如果Maven中配的是以开发为主 ,boot中配的是以测试为主 ,那究竟启动那个 ,我们记得 ,在开启的时候 ,是在命令行中运行jar包 ,而且打包的时候 ,用的是Maven的指令 ,所以就是说以maven为主

image-20230724160534731

  • 接下来让Maven控制版本 ,让boot加载Maven中设置的版本

配置文件分类

(一)

image-20230724161506921

  • 由于配置文件太多 ,每次服务器启动都要加很多配置 ,而且还容易写错 ,所以需要找个简单的方式 ,在boot中提供有多级配置文件 ,再这样的设定中就可以解决这个问题

image-20230724161732063

  • config包里面的配置文件会覆盖掉外面的配置文件进行生效 ,也就是config包里面的配置文件优先级比较高

  • 应用场景 :

    • 项目经理已经把配置文件搞好了 ,并且把配置文件配到了config包里 ,但是自己写的时候要根据当前本机情况进行开发 ,自己就在外面的Application里面写 ,等到写完了 ,上线之前把这个项目经理发的配置文件一配就好了 ,改bug的时候把项目经理的配置文件一删 ,继续在外面这个application里配

image-20230724162853926

(二)

  • 如果想要重新配端口 ,只要在jar包所在目录里面重新放一个新的配置文件 ,这样这个新的配置文件就生效了 ,而且覆盖工程中那两个配置文件

新编辑的yml文件

image-20230724163237367

jar包所在文件夹

image-20230724163127910

开启服务器 ,发现这里的端口号是82 ,覆盖了工程中的其他配置文件的端口设置

image-20230724163414121

(三)

  • 在jar包所在目录也可以再创建一个config目录 ,里面新建一个application.yml

image-20230724163718738

  • 配置端口

image-20230724163820349

  • 启动服务器

image-20230724163832607

  • 说明这里的config包下面的yml文件的优先级还要高

image-20230724164018435

整合

SpringBoot整合Junit

image-20230724164320658

  • 案例

  • 首先创建一个Junit模块

这个模块不用web也可以

  • 首先 : service

image-20230724170027309

service接口

image-20230724170106704

接口实现类

标注@Service定义成Bean

image-20230724170119502

  • 其次 : 测试类

  • 依赖注入

image-20230724170045953

  • 测试成功

image-20230724170158223

  • 在Java文件中 ,有一个引导类 ,这个类就起到了配置文件的作用 ,这个类在什么位置 ,它就会把他所在的包和他的子包全部扫描一遍 ,所以我们在BookServiceImpl中写的@Service才能加载成Bean

image-20230724165929031

  • 现在的测试类会默认加载引导类 ,其实就是初始化Spring的环境 ,如果不在这个com.itheima包里 ,就找不到引导类了 ,那么测试类就无法正常运行

下图中我们可以看到测试类和引导类其实在一个包里

image-20230724170524266

  • 如果我们非要设置在不同的包里面测试呢 ,就需要在测试类的注解里面指定包名

测试类在itheima1 ,引导类在itheima

image-20230724170820759

  • 总结

image-20230724171015238

SpringBoot整合SSM

  • 其实就剩下整合MyBatis了 ,因为前两个整合SpringMvc已经帮我们做好了

image-20230724171136083

  • Spring整合MyBatis复习

image-20230724171224611

image-20230724171251150

image-20230724171314586

  • 开始整合

第一步创建模块 ,添加myBatis的起步依赖

image-20230724171634665

第二步 : 配置yml配置文件

image-20230724175306061

第三步 : 书写实现类

image-20230724175338329

dao.BookDao

  • 注意头上的@Mapper ,因为要实现这个类的自动代理 ,Spring怎么知道这个类需要自动代理呢 ,原来我们自动代码里的时候 ,Spring需要扫描这个类 ,现在我们做自动代理就只需要在这个类上加一个@Mapper注解

image-20230724175359948

domain.Book

image-20230724175649228

总结两步走

  1. 配置yml配置类

  2. 给Dao层加上@Mapper注解

拓展 : 如果想要用Druid连接池 ,可以在pom文件和yml配置文件里面加上

 <dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid</artifactId>
     <version>1.1.16</version>
 </dependency>

image-20230724180729741

报错 : 如果boot版本是 2.4.2 ,那么可能会报时区异常的错

image-20230724180849631

解决办法

image-20230724180928921

整合MyBatis总结

  • 最重要的两个地方 : 1.加@Mappper 2.boot版本在2.4.2之前的要配置时区ServerTimeZone=UTC

image-20230724181145063

image-20230724181203504

image-20230724181215656

SpringBoot整合SSM案例

准备工作

image-20230724181649756

  • 创建模块 ,这个时候需要勾选三个地方 一个是Web的 ,一个是Sql的

  • 导入之前的项目文件

  • TODO : 在哪里都可以用 ,主要用于备忘录 ,凡是配过的地方都会显示

  • 下图就是我们修改的三个地方

image-20230724184154788

  1. 添加druid连接池依赖 druid 1.1.16

  2. 在Dao层接口上面配置@Mapper

  3. 在yml里面配置端口80 和连接数据库的相关信息

放置页面

  • 我们旧的项目里面 ,是把页面放在webapp下面 ,但是现在在boot的项目里面 ,我们放在static目录下面 ,静态就是放我们的静态资源

image-20230724184803993

image-20230724184843299

  • 运行引导类 ,起服务器

  • 加一个页面 index.html

image-20230724194808644

image-20230724194840796

image-20230724194920286

标签:里面,Springboot,配置文件,jar,配置,boot,SSM,yml,入门
From: https://blog.csdn.net/weixin_73749601/article/details/144644794

相关文章

  • 【入门】最大数
    题目描述n个数中最大的那个数在哪里?输出其位置,若有多个最大数则都要输出。输入格式第一行:n(3<=n<=10)第二行:空格隔开的n个数输出格式输出若干个数,表示最大数的位置,每行一个。输入数据1512636输出数据1 35代码:#include<iostream>usingnamespacestd;......
  • 【入门】数字出现次数
    题目描述有50个数(0-19),求这50个数中相同数字出现的最多次数为几次?输入格式50个数字输出格式1个数字(即相同数字出现的最多次数)输入数据1110201581270315015181671716911916121712431111421114611464111318703231819216......
  • 【Java项目】基于SpringBoot+Vue的租房网站
    源码获取:https://download.csdn.net/download/u011832806/89432125基于SpringBoot+Vue的租房网站开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven租房网站通过对用户的需求进行分析,结合实际情况进行开发研究,对用户的所有需求做......
  • ssm毕设小区物业管理与疫情防控系统程序+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着城市化进程的不断加快,住宅小区成为了人们生活的核心场所,物业管理在居民生活中的重要性愈发显著。在全球经历新冠疫情的大背景下,小区物业管理......
  • ssm毕设小学课后辅助平台程序+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容小学课后辅助平台研究相关内容一、研究背景在现代教育体系不断发展的当下,小学教育面临着诸多新的挑战与机遇。随着信息技术的广泛应用,教育信息化成为了必然......
  • (长期更新)《零基础入门 ArcGIS(ArcMap) 》实验五----土地整治(超超超详细!!!)
    土地整治        土地整治是指在一定的区域内,按照土地利用总体规划确定的目标和用途,采取工程和生物措施,以农用地为主要对象,同时视区域内居民点、工矿废弃地和未利用地等适宣性况生费行综合整治,并以增加耕地面积、提高耕地质量、建设高标准基本农田为目的,改善农......
  • Python入门6:函数
    一、什么是函数?    在前面的一些作品里面,其实我们已经运用过了函数的内容了,只是之前对函数的概念还不太了解,其实我们前面用过的print()和input()等都是函数。那么什么是函数呢?举个例子,假如我们我们在公司上班,有一个查询的功能在很多个地方都要使用,那么是不是每一个程序猿......
  • 医药垃圾分类管理系统|Java|SSM|JSP|
                           【技术栈】1⃣️:架构:B/S、MVC2⃣️:系统环境:Windowsh/Mac3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7+4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html5⃣️数据库可视化工具:navicat6⃣️服务......
  • 网上球鞋竞拍系统|Java|SSM|VUE| 前后端分离
                  【技术栈】1⃣️:架构:B/S、MVC2⃣️:系统环境:Windowsh/Mac3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7+4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html5⃣️数据库可视化工具:navicat6⃣️服务器:SpringBoot自带apacheto......
  • 全网最全,保姆级Stable Diffusion入门使用教程(附模型下载使用说明)
    一、出图的基本操作在出图之前,我们先来了解一下SD操作界面常用的一些功能1、模型选择:选择合适的大模型2、文生图:通过输入提示词,让AI生成图片3、图生图:在已经输入文字指令的基础上,通过一张参考图片,让AI根据提示词生成类似的效果。4、附加功能:提高生成图片的分辨率......