Spring Boot 简介

简介: Spring Boot 简介

前言

Spring 是重量级企业开发框架 EJB(Enterprise JavaBean) 的替代品,是为了解决企业级应用开发的复杂性而创建的,简化开发。通过 依赖注入(DI) 和 面向切面编程,用简单的 Java 对象(POJO,Plain Old Java Object) 实现 EJB 的功能,其组件代码轻量,但是配置很繁琐(需要大量 XML 配置)。Spring 2.5 引入基于注解的组件扫描,Spring 3.0 引入基于 Java 的配置,可以代替 XML,虽然引入的特性大大提高了配置的效率,但是也无法避免,针对这一问题,Spring Boot 应运而生。


Spring Boot 是为简化 Spring 应用初始搭建和开发过程,我们只要基于特定方式来进行配置即可。


今天我们就来看看,关于 Spring Boot 的相关介绍吧!


Spring Boot

定义

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”…Most Spring Boot applications need very little Spring configuration.


上面的一段话来自 Spring 官方,即“Spring Boot 能够轻松创建基于 Spring 的独立的生产级别的应用程序,而只需要通过 “just run (可能是 java -jar、tomcat、maven、shell、'Application' 等)”就可以让项目跑起来,大多 Spring Boot 项目仅需少量配置即可运行”。


Spring Boot 基于 Spring 开发,Spirng Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等)。


为什么需要 Spring Boot

Spring 框架能够让 J2EE企业应用程序开发更加简化,但是还是需要配置大量文件,针对这一问题,Spring Boot 能够进一步简化 Spring 框架,使得开发更为高效;


image.png特点

可以创建独立 Spring 应用程序,并且基于 Maven 或 Gradle 插件,可以创建可执行的 JARs 和 WARs;

内嵌 Tomcat 或 Jetty 等 Servlet 容器;

提供自动配置的 started 项目对象模型(POMS)以简化 Maven 配置;

尽可能自动配置 Spring 容器;

提供准备好的特性,如指标、健康检查和外部化配置;

没有冗余代码生成,不需要 XML 配置;

重要策略

开箱即用:Outofbox,指在开发过程中,通过在 Maven 项目的 pom 文件中添加相关依赖包,然后使用对应注解来代替繁琐的 XML 配置文件以管理对象的生命周期。这一特点使得开发人员摆脱了复杂的配置工作以及相关依赖的管理工作,更加专注于业务逻辑;

约定优于配置:Convention over configuration,一种由 SpringBoot 本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽然降低了部分灵活性,增加了 BUG 定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量 XML 配置,而且可以将代码编译、测试和打包等工作自动化;

Spring Boot 项目约定

约定项目中有且只有一个入口类,其类名推荐使用:xxxApplication.java。而且该入口类必须维语所有的子包之外,其中必须存在一个用于启动项目的 main 函数。


image.png

  • 此外, Spring Boot 项目约定必须在项目根目录中存在一个名为 application.yml 或者 yml.prpperties 的配置文件,一般是位于 resources 目录下。

image.pngSpring Boot 的优缺点

优点

使得开发基于 Spring 的应用程序变得简单;

Spring Boot 项目开发所需时间明显减少,提高整体生产力;

无需编写大量样板代码、XML 配置和注释;

与 Spring 生态系统更加容易集成,如 Spring JDBC、Spring ORM、Spring Data、Spring Security;

遵循默认配置,我们通过修改默认配置能够减少开发工作;

提供嵌入式 http 服务器,方便开发测试 web 应用程序;

提供命令行接口(CLI)工具,用于开发测试 Spring Boot 应用程序;

提供多种插件,能使用内置工具(Maven & Gradle)开发测试 Spring Boot 应用程序;

缺点

相关文档资料较少;

版本迭代快,导致各版本间的模块改动可能很大;

总结

以上就是今天的所有内容了,主要讲了 Spring Boot 的定义、特点、项目约定以及其优缺点。而关于 Spring Boot 项目的具体事例的搭建,我们就下期文章再见吧!


传送门:创建 SpringBoot 项目的两种方式


最后,如果本文对你有所帮助,那就点个赞再走鸭 ~


目录
相关文章
|
6月前
|
前端开发 Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档—— Swagger 简介
第6课介绍了在Spring Boot中集成Swagger2以展示在线接口文档的方法。随着前后端分离架构的发展,API文档成为连接前端与后端开发的重要纽带。然而,代码更新频繁导致文档难以同步维护,Swagger2解决了这一问题。通过Swagger,在线API文档不仅方便了接口调用方查看和测试,还支持开发者实时测试接口数据。本文使用Swagger 2.2.2版本,讲解如何在Spring Boot项目中导入并配置Swagger2工具,从而高效管理接口文档。
223 0
|
3月前
|
Java API 数据库
JPA简介:Spring Boot环境下的实践指南
上述内容仅是JPA在Spring Boot环境下使用的冰山一角,实际的实践中你会发现更深更广的应用。总而言之,只要掌握了JPA的规则,你就可以借助Spring Boot无比丰富的功能,娴熟地驾驶这台高性能的跑车,在属于你的程序世界里驰骋。
158 15
|
8月前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
2166 17
Spring Boot 两种部署到服务器的方式
|
6月前
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
234 0
|
11月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
341 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
10月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
539 2
|
XML 监控 Java
Spring Cloud全解析:熔断之Hystrix简介
Hystrix 是由 Netflix 开源的延迟和容错库,用于提高分布式系统的弹性。它通过断路器模式、资源隔离、服务降级及限流等机制防止服务雪崩。Hystrix 基于命令模式,通过 `HystrixCommand` 封装对外部依赖的调用逻辑。断路器能在依赖服务故障时快速返回备选响应,避免长时间等待。此外,Hystrix 还提供了监控功能,能够实时监控运行指标和配置变化。依赖管理方面,可通过 `@EnableHystrix` 启用 Hystrix 支持,并配置全局或局部的降级策略。结合 Feign 可实现客户端的服务降级。
678 23
|
11月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
334 2
|
10月前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
273 0
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
157 2