网站首页 > 文章精选 正文
1 什么是Spring Boot
JavaEE开发中,“约定大于配置”,即系统,类库,框架应该假定合理的默认值,而非要求提供不必要的配置;而目前Spring或SpringMVC需要进行大量繁琐的配置,鉴于这种情况Spring Boot应运而生。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。
Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。
Spring Boot 使用的注解大都来源Spring注解,所以可以让Spring开发者零适应过渡到Spring Boot
以上的这个图比较有意思,即开发者从一个微小的入口就能开启spring的大门
2 Spring Boot的特点
- 快速创建独立运行的Spring项目以及与主流框架集成
- 内嵌的Servlet容器,如Tomcat,jetty,应用无需打成WAR包
- starters自动依赖与版本控制
- 大量的自动配置,简化开发,也可修改默认值
- 无需配置XML,无代码生成,开箱即用
- 准生产环境的运行时应用监控
3 准备开发环境
Java8
idea2021.2.2
maven3.8.3
springboot 2.5.5
3.1maven 设置setting.xml
3.2idea 设置maven
4 开发第一个SpringBoot 应用
需求说明:
在浏览器输入http://localhost:8080/hello 返回"hello spring boot"
4.1 第一步
4.2 第二步
4.3 第三步
执行以上步骤后,idea会自动创建一个项目,简单介绍一下
4.3.1 项目目录信息
4.3.2 项目入口类
4.3.3 pom.xml
4.4 第四步
创建controller
4.5 第五步
启动springboot应用
4.6 第六步
展示效果,在浏览器输入
5 项目打包部署
5.1 pom中已经添加了maven插件
5.2 执行打包
5.3拷贝jar 部署
把以上的jar 拷贝到你想部署的服务器即可。
5.4 执行jar
比如,我们把以上的jar 拷贝到了电脑桌面
执行一下命令即可运行
6 SpringBoot启动原理探究
6.1 pom.xml-- 父项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
该父项目中又依赖了,
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.5</version>
</parent>
在spring-boot-dependencies中定义了相当多的jar的依赖管理信息,比如,(篇幅有限,只列出一部分)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-amqp</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-blueprint</artifactId>
<version>${activemq.version}</version>
</dependency>
这样一来,我们开发的项目中,依赖jar 版本就被springboot的管理了。具体的结构如下
6.2 依赖starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter: 称作 spring 场景启动器。比如spring-boot-starter-web 该启动器中就包含了web 所需要的jar ,我们只需要依赖spring-boot-starter-web ,相当于就导入web需要依赖的jar
Spring Boot将所有的功能场景都抽取出来,做成对应的starters(启动器),只需要在项目里面引入这些starter
相关场景的所有依赖都会导入进来。
6.3 主程序入口类
@SpringBootApplication
public class Springboot01Application {
public static void main(String[] args) {
SpringApplication.run(Springboot01Application.class, args);
}
}
@SpringBootApplication: 该注解标注到哪个类上,说明这个类是SpringBoot的主配置类,SpringBoot
就应该运行这个类的main方法来启动SpringBoot应用; 该注解是个组合注解,我们按 ctrl点击进入
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
@SpringBootConfiguration: spring的配置类
@EnableAutoConfiguration :开启spring的自动注解配置
猜你喜欢
- 2024-12-25 IDEA 中玩转 Git idea的git
- 2024-12-25 加速 SpringBoot 应用开发,官方热部署神器真带劲
- 2024-12-25 第三篇:彻底卸载IntelliJ IDEA 如何卸载idea重新安装
- 2024-12-25 这样做优化,实现 0.059s 启动一个SpringBoot项目
- 2024-12-25 Apple in Early Talks With Tencent and ByteDance on AI Integration for iPhones in China
- 2024-12-25 IntelliJ IDEA 如何创建一个普通的 Java 项目,及创建 Java 文件并运行
- 2024-12-25 体验IntelliJ IDEA的远程开发(Remote Development)
- 2024-12-25 IDEA 2021.1版本正式发布,完美支持WSL 2
- 2024-12-25 美国IDEA设计大奖名单公布,恒洁八款产品皆上榜
- 2024-12-25 IntelliJ IDEA详细配置图解,挖掘更多的功能
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)