[color=color:rgb(31,35,41);]Spring boot框架
Spring Boot倡导约定优于设置,将简化开发发挥到极致。使用Spring Boot框架可以快速构建Spring应用,再也不必要 大量的繁琐的的各种设置。
SpringBoot框架设计的目的是:步伐员关注业务逻辑就行面的事儿交给Spring Boot就行。
Spring Boot特性的核心
1.启动器starter
之前做web开发,必要引入json处理的jar包,tomcat服务器,SpringMVC的依赖,还必要管理版本,—繁琐
Spring Boot引入starter启动器,可以主动管理这个功能相关的依赖,主动管理依赖版本的控制
2.主动设置
之前必要手动设置之后用注解,现在Spring Boot会尽可能的主动设置Spring应用和第三方库
举例:如果要举行事务的控制,不消做任何事务相关的设置,只必要在service类上添加@Transactional注解即可
快速搭建Spring Boot项目
[color=color:rgba(6, 10, 38, 0.8);]Maven
Maven是一个项目管理工具
[color=color:rgb(31,35,41);]Maven提供的功能非常多,能进步我们的开发服从,淘汰我们的开发,淘汰Bug
我们使用Maven来举行项目构建和管理依赖
依赖管理
Maven是⼀个项目管理工具,通过pom.xml文件的设置获取jar包,而不消手动去添加jar包
依赖:当前项目运行所必要的jar包
依赖设置
比如前面学习JDBC时,我们必要手动下载mysql-connector-java的包.并且添加到项目中。
如果使用Maven,我们只必要在pom. xml中引入mysql-con| nector-java的依赖就可以了
- 在pom文件< dependencies> 标签内,添加依赖坐标
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>8.0.30</version>
- </dependency>
复制代码 依赖通报
早期我们没有使用maven时,向项目中添加依赖的jar包,必要把全部的jar包都复制到项目工程下。
比如A依赖B,B依赖C,那么A项目引入B的同时,也必要引入C,如果我们手动管理这个依赖,这个过程就会比较贫苦,我们必要知道每个库都依赖哪些库,以及这些依赖之间的版本是怎样关联的
比如去医院看病,必要带上以往的病历,查抄结果,处方等,并且要确认带的资料是精确的,如果日期错了,大概患者错了,带少了,就必要回去重新拿。
使用maven的话,就可以避免管理所需依赖的关系。我们只必要在pom文件中,定义直接依赖就可以了,由于maven的依赖具有通报性,以是会主动把所依赖的其他jar包也一起导入
依赖排除
当前阶段我们必要依赖的库并不多,但随着项目的越来越复杂,库之间的依赖关系也会变得越来越复杂。
排除依赖:指主动断开依赖的资源。
比如,我下了一个快递单子,默认会有一个服务,就是快递小哥会上门取件,但是我刚好要出门,而且顺道颠末站点,也可以选择自己送过去
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>6.0.6</version>
- <exclusions>
- <exclusion>
- <artifactId>spring-jcl</artifactId>
- <groupId>org.springframework</groupId>
- </exclusion>
- </exclusions>
- </dependency>
复制代码 Maven Help插件
当项目比较复杂时,我们就会有Jar包辩论的问题,这时候就必要去解决依赖辩论。解决辩论之前,必要先找到辩论,我们可以使用MavenHelp插件来观察包和包之间的依赖关系。
插件就是对步伐的⼀些特定场景,做出⼀些特定的功能的扩展.
安装插件:File->Settings-> lugins->搜刮’Maven Help’->找到对应插件,点击Install安装即可,安装后必要重启下idea,才能见效
Maven仓库
在 Maven中,根据groupId、 artifactId、version的设置,来唯一识别一个 jar包,缺一不可。
当我们在 pom文件中设置完依赖之后,点击革新,Maven会根据坐标的设置,去仓库里探求 Jar包,并把他下载下来,添加到项目中。这个 Jar包下载的地方就称为仓库。
仓库:用于存储资源,管理各种 jar包
[color=color:rgb(31,35,41);]Maven仓库的本质就是一个目次,这个目次被用来存储开发中全部依赖
Maven仓库分为两大类:当地仓库和长途仓库。其中长途仓库又分为中央仓库,私服和其他公共库
当地仓库
顾名思义是自己盘算机上的⼀个目次(用来存储jar包)
当项目中引入对应依赖jar包后,首先会查找当地仓库中是否有对应的jar包
如果有,则在项目直接引用
如果没有,则去中央仓库中下载对应的jar包到当地仓库
中央仓库
maven软件中内置一个长途仓库地址,就是中央仓库,服务于整个互联网。由Maven团队维护,全球唯一。
仓库地址:https://repo1.maven.org/maven2/
私服
一般由公司团队搭建的私有仓库.具有一定的权限限制
Maven依赖下载的次序发生了变化
流程:
当Maven必要下载资源时,第一步是从当地仓库获取,不存在就从私服哀求,私服没有就从中央仓库下载,中央仓库没有该资源就会报错,存在就会先缓存在私服,再缓存到当地仓库
设置国内源
由于中央仓库在国外,以是下载起来会比较慢,以是必要设置国内的公开的长途仓库
上述设置的内容,只对当前项目见效,为了让后续新建的项目也见效,必要重新设置一下新项目的Settings
引入Maven项目
Spring Boot的jar包和普通jar包的区别
依赖管理:
Spring Boot的JAR包通常包罗了应用步伐运行所需的全部依赖项,也就是说它是一个“fat jar”(胖JAR包),这种打包方式使得应用可以独立运行,而不必要外部的类路径或应用服务器上的其他依赖。
普通的JAR文件一般只包罗一个类库的功能,并且必要依赖于特定的类路径来找到其他的类库大概框架,这些依赖项通常在部署情况中已经存在,比如在一个应用服务器中。
可执行性:
Spring Boot的JAR文件可以通过直接执行这个JAR文件来启动应用步伐通过 java-jar XXX. jar 命令就可以直接运行应用步伐。
普通的JAR文件通常是不可直接执行的,必要通过指定主类(mainclass)的方式大概其他方式来启动一个应用步伐,
SpringBoot的这些特性使得部署和运行变得更加简朴和方便,特别是在微服务架构中
每个服务都可以被打包成独立的JAR文件并部署到任何支持Java的地方。
什么是脚手架?
脚手架是指在项目初期提供底子布局和工具支持的暂时框架或工具,旨在资助快速搭建项目原型,避免重复性工作
通过脚手架快速搭建,一个是官方提供的脚手架
链接
生成后的文件放到对应的项目即可
社区版的必要安装Spring Boot Help插件
idea内置的脚手架
社区版的idea必要jdk17
专业版的无要求
目次介绍
Spring Boot项目有两个重要的目次:
<src/ main/ java: Java源代码
src/ main/ resources:为静态资源或设置文件:
/static:静态资源文件夹,比如前期学的js,css,html等静态文件,不必要服务器数据举行绑定的页面
/ templates: 模版资源文件夹,重要存放动态模板文件,比如JSP, Freemarker, Thymeleaf等必要服务器动态渲染数据的文件
src/ test/ java: 测试代码源代码
target:编译后的文件路径
pom. xml: maven设置文件
为什么要以继承父工程的方式引入Spring Boot
[color=color:#DF2A3F;]继承父工程的上风
- 依赖管理:可以在父工程中定义依赖的版本,子模块可以直接引用而不必指定版本号。
- 插件管理:可以在父工程中设置常用的插件及其版本,子模块可以直接使用这些设置。
- 属性设置:可以在父工程中定义一些通用的属性,如项目编码、Java版本等。
- 同一设置:可以同一多个子模块的构建设置,确保同等性。
运行项目
当前类被 @SpringBootApplication 标注,被该注解标注的类是springboot项目的入口类。
该类的main方法就是整个springboot项目的入口。
通过观察@SpringBootApplication 的源码
该注解被以下三个注解标注了:
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
也就是说 @SpringBootApplication 注解是一个复合注解,同时拥有以上三个注解的功能。
SpringBoot内置了Tomcat服务器,无需设置即可直接运行
运行成功
Spring Boot来实现和浏览器及用户的交互。
在创建的项目包路径下创建HelloController文件,实当代码如下:
- @RequestMapping("/hello")
- @RestController
- public class HelloController {
- @RequestMapping("/h1")//映射,对应到url
- public String hello(){
- return "hello welcome to my server";
- }
- }
复制代码 为什么要加@RequestMapping 注解
原因:实现 URL 路由映射
为什么要加RequestMapping 注解
@RequestMapping 可以修饰类和方法,访问地址是类路径 + 方法路径
浏览器:
输入网址:http://127.0.0.1:8080/hello/h1
通过IP地址127.0.0.1定位到网络上的一台盘算机,127.0.0.1就是本机
通过端口号8080找到盘算机上对应的历程,也就是在当地盘算机中找到正在运行的8080端口的步伐
/ hello/h1是哀求资源位置
资源:对盘算机而言资源就是数据
web资源:通过网络可以访问到的资源(通常是指存放在服务器上的数据)
http://127.0.0.1:8080/hello/h1,就是向当地盘算机中的8080端口步伐,获取资源位置是/hello/h1的数据
8080端口步伐,在服务器找/hello位置的资源数据,发给浏览器
服务器:
接收到浏览器发送的信息 (如: /hello/h1)
在服务器上找到/hello/h1的资源
把资源发送给浏览器
总结
Spring Boot是为了快速开发Spring而诞生的
Spring Boot具备:
Spring Boot提供了启动添加依赖的功能,可以快速集成框架。
内置web服务器,无需设置Tomcat等Web服务器,直接运行和部署步伐。
淘汰使用繁琐的XML,使用注解和设置的方式举行开发。
支持更多的监控的指标,可以更好的相识项目的运行情况等特点。
Spring Boot可使用Idea或网页创建,它的设计头脑是约定大于设置,类上标注@SpringBootApplication就可以启动Spring Boot项目了。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |