ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SpringBoot 快速入门

SpringBoot 快速入门 目录一、创建你的第一个Maven项目二、Maven 依赖管理1、依赖坐标2、排除依赖 exclusions三、Maven仓库1、Maven依赖坐标2、Maven仓库分类2.1 本地仓库​编辑​编辑2.2 中央仓库查找Jar的坐标步骤2.3 私有服务器私服Maven 依赖查找顺序有私服场景3、简单工作流程总结4 Maven 设置国内源4.1 配置当前项目的 setting4.2 设置新项目的 setting四、第一个SpringBoot程序4.1 Spring Boot介绍Spring生态主要项目什么是Spring Boot4.2 Spring Boot项目创建使用Idea创建项目配置参数说明豆包提供仅供参考创建内部五、jar包下载不下来一、创建你的第一个Maven项目首先idea有吧然后先教你如何快速创建一个SpringBoot的程序。见下如图打开项目后如图填好项目名、项目位置、选择Maven接着来看一般来说打开后会展现如下内容接着我来介绍一下首先需要了解的是这个pom.xml的项目是用来传递依赖的那什么是“依赖”呢想像一下你在吃饭那你吃饭是不是需要盘子那么吃饭时你的“盘子就是你的依赖”所以在这里面就是放各种你运行Java代码所需要的各种第三方文件的。至于从哪里导入是关于“仓库”这个下文解释。然后目光来看右侧这里有一系列的命令二这里我把豆包给的简要解释放到这里大家可以参考Maven 生命周期就是项目构建的一套固定执行流程后面的命令执行会自动执行前面所有阶段。clean清理删除项目编译生成的 target 目录把旧编译产物清空。validate校验验证项目配置、pom 文件是否合法。compile编译把 java 源代码编译成 class 字节码文件。test测试执行项目单元测试代码。package打包把编译后的代码打成 jar/war 包。verify校验检查对打包结果做完整性校验。install安装把打好的包保存到本地 Maven 仓库供本机其他项目引用。site生成项目文档站点。deploy部署把包上传到远程私服仓库给团队其他人使用。✨小知识点 执行后面阶段会自动执行前面全部阶段例如执行install会自动依次执行 validate → compile → test → package → verify → install。 日常开发最常用clean、compile、package、install。二、Maven 依赖管理Maven 核心能力之一就是依赖管理我们不再需要手动下载、复制 jar 包到项目中全部通过pom.xml配置文件完成 jar 包的引入。依赖项目运行所需要的第三方 jar 包。1、依赖坐标每一个第三方 jar 包都拥有唯一的依赖坐标由三部分组成groupId组织 / 公司 / 开源社区标识artifactId项目、jar 包名称version版本号示例MySQL 驱动写完记得一定要右上角刷新任意一个均可dependencies dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.33/version /dependency /dependenciesMaven 就会自动从仓库下载对应 jar 包到项目中。后续新增依赖、修改版本都需要执行刷新。2、排除依赖 exclusions很多 jar 包会自带传递依赖有时候传递过来的包会产生包冲突、依赖冲突。 我们可以使用exclusions标签把不需要的传递依赖排除掉。比如说我这里想排除这个包dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.30/version exclusions exclusion groupIdcom.google.protobuf/groupId artifactIdprotobuf-java/artifactId /exclusion /exclusions /dependency注意exclusion里面不需要写 version只需要指定groupId和artifactId即可。依赖排除本质上是为了防止版本的冲突这里了解一下暂时不需掌握太深入。PS这里还介绍一个插件--Maven Help不过由于现在阶段排除依赖用的比较少所以这里大家感兴趣的可以去装一下流程也给你们三、Maven仓库OK这里再介绍一个必须了解的概念本地仓库和远程仓库1、Maven依赖坐标我们通过短短几行代码就把依赖jar包放在了项目里。dependency groupIdmysql/groupId artifactIdmysql‑connector‑java/artifactId version8.0.30/version /dependency以上代码称之为坐标坐标是唯一的。在Maven中根据groupId、artifactId、version的配置来唯一识别一个jar包三者缺一不可。当我们在pom文件中配置完依赖之后点击刷新Maven会根据坐标的配置去仓库里寻找Jar包并把它下载下来添加到项目中。这个Jar包下载存放的地方就称为仓库。仓库用于存储资源管理各种jar包。Maven仓库的本质就是一个目录(文件夹)这个目录被用来存储开发中所有依赖jar包插件等。2、Maven仓库分类Maven仓库分为两大类本地仓库和远程仓库。 其中远程仓库又分为中央仓库、私服 和其他公共库。2.1 本地仓库本地仓库就是自己计算机上的一个目录用来存储jar包。当项目中引入对应依赖jar包后Maven首先会查找本地仓库中是否有对应的jar包对应方式如图如果有则在项目直接引用如果没有则去远程中央仓库中下载对应的jar包到本地仓库本地仓库地址查看方式IDEAFile - Settings查看该仓库目录可以看到该目录下有很多的jar。仓库目录初始是空的随着Maven的使用仓库下文件会越来越多。本地仓库默认位置这里注意强烈不建议放到C盘否则容易爆满建议改盘。并且路径不要给我出现中文改盘步骤CtrlC与CtrlV把.m2文件复制到你想要改的文件路径上然后修改下图的位置为新位置第一个是Maven配置文件建议使用国内镜像可以去网上找我这里使用我自己的配置文件;2.2 中央仓库中央仓库是maven软件中内置一个远程仓库地址服务于整个互联网由Maven团队维护全球唯一。仓库地址Central Repository:可以通过网站https://mvnrepository.com 来查询并下载jar包。 我们既可以把自己写好的Jar包上传到中央仓库需要满足一定要求也可以从中央仓库下载Jar包。查找Jar的坐标步骤1、访问 https://mvnrepository.com/2、搜索需要的jar例如搜索mysql3、选择要添加的Jar包版本建议在新的里面选择次新的使用人数偏多的。4、复制Jar包对应的maven坐标粘贴到pom.xml的dependency中实操小提示选择版本的时候尽量避开存在漏洞Vulnerabilities的版本优先选择使用量高、稳定的版本。2.3 私有服务器私服私服一般是公司、团队内部搭建的私有仓库归属于公司或者部门访问通常需要权限。 引入私服之后Maven 依赖的下载查找顺序会发生改变。Maven 依赖查找顺序有私服场景先从本地仓库获取如果本地仓库已经存在该 jar 包直接使用。本地没有则向私服请求资源私服有资源直接返回。私服也不存在就去中央仓库下载中央仓库也找不到直接报错。如果中央仓库存在资源会先把资源缓存到私服再缓存到本地仓库供本次请求使用。小提示私服供团队多人共用同一个 jar 包团队只需要第一个人下载一次其他人直接从私服拿取提升团队开发效率。整体流程本地仓库 → 私服 → 中央仓库。3、简单工作流程总结pom.xml编写依赖坐标maven先去本机本地仓库找jar本地没有就联网去中央远程仓库下载下载完成保存到本地仓库项目直接引用本地仓库jar包。4 Maven 设置国内源Maven 默认的中央仓库部署在国外国内直接访问下载 jar 包速度很慢开发中一般会配置国内公开镜像源加速依赖下载。4.1 配置当前项目的 settingIDEA 路径File → Settings在这里配置的 Maven 配置仅对当前打开的项目生效。4.2 设置新项目的 setting上面的配置只作用于当前项目如果希望之后新建的所有项目都使用同一套 Maven 配置不用反复修改。 只需要让新项目共用同一个settings.xml配置文件新建项目时确认 Maven 的settings.xml文件路径即可无需重复编写镜像配置。四、第一个SpringBoot程序4.1 Spring Boot介绍在学习SpringBoot之前我们先来了解Spring框架。访问Spring官方网站Spring | Home。Spring官方对它的定位Spring让Java编程变得更快、更简单、更安全。凭借对开发速度、简洁性与生产力的追求Spring已经成为全球最流行的Java开发框架。Spring生态下提供了大量开源项目覆盖Web开发、安全、大数据、分布式系统等各个领域形成了一套完整的技术生态圈日常开发我们会优先选用Spring生态内的组件解决业务问题。Spring生态主要项目上面所有项目底层都基于Spring Framework。但是原生Spring Framework有一个很突出的痛点配置繁琐、入门门槛高。 为了解决大量XML配置带来的麻烦Spring推出了Spring Boot用来简化Spring开发。什么是Spring Boot我们可以用生活中的脚手架来理解Spring Boot。 盖房子时脚手架可以帮助工人砌墙、抹灰、装修核心作用就是更快地把房子搭建出来。Spring Boot就是Spring框架的脚手架专门用来快速开发Spring应用程序。在没有Spring Boot之前使用原生Spring开发我们需要手动引入一大堆依赖、编写大量xml配置文件配置十分繁琐。 Spring Boot脚手架就是为了解决这个痛点而生简化依赖管理、自动装配大幅降低Spring的开发成本。4.2 Spring Boot项目创建使用Idea创建因为我们用的Idea社区版其他版本也同样适用所以建议自己想办法去弄个专业版。新建项目进入项目配置页面需要填写项目的各项基础属性。项目配置参数说明豆包提供仅供参考参数示例值说明Group Idcom.example组织ID一般写公司/个人反向域名代表项目所属组织Artifact Iddemo项目ID当前项目的模块名称Version0.0.1‑SNAPSHOT项目版本SNAPSHOT代表快照开发测试版本Project typeMaven项目构建类型这里选择Maven管理项目LanguageJava开发语言Spring Boot主流使用JavaPackagingJar打包方式Spring Boot项目一般使用Jar包Java version17JDK版本要和本地安装的JDK保持一致Project namedemo项目名称本地文件夹显示的名字Project descriptionDemo project for Spring Boot项目描述对项目的简单说明Package namecom.example.demo项目包名由GroupIdArtifactId组合而成配置完成之后点击Next继续选择项目需要引入的依赖确认之后即可生成Spring Boot工程。选择我框起来的那两个之一不要用snapshot即可我们做Web开发所以使用Web项目,创建内部之后可以看到一个默认的启动类然后我们可以创建我们的第一个Springboot程序然后下面你先模仿的来写后期会解释各个注释的意思OK现在可以随便打开一个浏览器了然后再输入框输入回车一下注意只留src和pom文件即可这个也删了五、jar包下载不下来该咋办这里附上一张图不过小罗我目前没有遇到过这种情况这个也是我在网上找的方法大家可以去尝试。六、Spring Boot项目目录Spring Boot可使用Idea或网页创建它的设计思想是约定大于配置类上标注SpringBootApplication就可以启动Spring Boot项目。Spring Boot项目有两个主要的目录src/main/javaJava 源代码src/main/resources为静态资源或配置文件/static静态资源文件夹比如前期学的jscsshtml等静态文件不需要服务器数据进行绑定的页面/templates模版资源文件夹主要存放动态模板文件比如JSPFreemarkerThymeleaf等需要服务器动态渲染数据的文件src/test/java测试代码源代码target编译后的文件路径pom.xmlmaven配置文件七、Web服务器浏览器和服务器两端进行数据交互使用的就是HTTP协议。前面我们已经学习了 HTTP 协议知道了 HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式。 Web服务器就是对HTTP协议进行封装程序员不需要直接对协议进行操作(自己写代码去解析http协议规则)让Web开发更加便捷所以Web服务器也被称为WWW服务器HTTP服务器主要功能是提供网上信息浏览服务。常见的Web服务器有Apache,Nginx,IIS,Tomcat,Jboss等。SpringBoot内置了Tomcat服务器无需配置即可直接运行。 Tomcat默认端口号是8080所以我们程序访问时的端口号也是8080。八、请求响应流程分析浏览器输入URL之后发起请求就和服务器之间建立了连接。浏览器输入网址http://127.0.0.1:8080/hello通过IP地址127.0.0.1定位到网络上的一台计算机127.0.0.1就是本机。通过端口号8080找到计算机上对应的进程也就是在本地计算机中找到正在运行的8080端口的程序。/user/sayhi是请求资源位置资源对计算机而言资源就是数据web资源通过网络可以访问到的资源通常是指存放在服务器上的数据http://127.0.0.1:8080/user/sayhi就是向本地计算机中的8080端口程序获取资源位置是/user/sayhi的数据。 8080端口程序在服务器找/hello位置的资源数据发给浏览器。服务器接收到浏览器发送的信息如/user/sayhi在服务器上找到/user/sayhi的资源把资源发送给浏览器九、访问出错怎么办9.1 404404表示用户访问的资源不存在。大概率是URL的路径写的不正确。错误实例1url单词拼错错误实例2注解写错 使用Controller没有搭配ResponseBody访问接口也会报404。9.2 500服务器出现内部错误。一般是服务器的代码执行过程中遇到了一些特殊情况(服务器异常崩溃)会产生这个状态码。 示例代码RestController public class UserController { RequestMapping(/sayHi) public String sayHi(){ int res 10/0; return hello,Spring; } }代码出现除零异常访问就会返回500状态码。9.3 小结最开始学习Spring的时候会遇到很多问题更多是环境相关的问题。 我们不仅要学习 Spring 代码的基本写法更重要的是学习排查错误的思路。程序猿调试BUG如同医生诊病。 一个有经验的程序猿和一个新手程序猿相比最大的优势往往不是代码写的多好而是调试效率有多高。同一个问题可能新手花了几天都无法解决的但是有经验的程序猿可能几分钟就搞定了。熟悉 HTTP 协议能让我们调试问题事半功倍。4xx的状态码表示路径不存在往往需要检查 URL 是否正确和代码中设定的 Context Path 以及 Servlet Path 是否一致。5xx的状态码表示服务器出现错误往往需要观察页面提示的内容和 Tomcat 自身的日志观察是否存在报错。出现连接失败往往意味着服务没有正确启动也需要观察服务的自身日志是否有错误提示。观察日志是调试程序的重要途径。系统日志往往很多需要同学们耐心阅读经常阅读熟练了就能更快速的找到问题了。十、总结Spring Boot 是为了快速开发 Spring 而诞生的Spring Boot 具备Spring Boot 提供了启动添加依赖的功能可以快速集成框架。内置web服务器无需配置 Tomcat 等Web服务器直接运行和部署程序。可以完全抛弃繁琐的 XML使用注解和配置的方式进行开发。支持更多的监控的指标可以更好的了解项目的运行情况等特点。
返回列表