一、什么是Spring?为什么要使用SpringBoot?

1.1 什么是SpringBoot

SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。

2014年4月,Spring Boot1.0.0发布。
Spring的顶级项目之一(https://spring.io)。 

1.2 为什么要使用SpringBoot

1.2.1 Spring构建应用有哪些缺点?

1.配置繁琐

  • Spring的组件代码是轻量级的,但配置却是重量级的。
  • 初期,Spring使用大量XML配置。
  • Spring2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。
  • Spring3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。 所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但它要求的回报也不少

2.依赖繁琐

项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。

1.2.2 SpringBoot如何解决Spring构建的缺点?

1.自动配置(约定大于配置)

Spring Boot 采用约定优于配置的理念,提供一些默认的配置和自动化配置,大幅度简化了应用的配置过程。开发者可以只需少量的配置即可快速搭建一个 Web 应用,而无需像传统 Spring 应用一样需要手动进行大量的配置。SpringBoot在项目启动时,会自动加载Spring项目需要的配置。开发人员无需关心配置,也不需要去写配置文件,即可快速构建Spring应用。

2.起步依赖(Starter)

Spring Boot 可以使用 starter POM 定义一组常用依赖库,从而降低版本不兼容的问题,且不需要使用者手动管理依赖库,大大提高了开发效率。starter本质上是一个Maven项目对象模型(POM),定义了对其他库的传递依赖这些东西加在一起即支持某项功能。简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。比如新建一个基础的Web应用,只需要引入Spring-boot-web-starter即可,pom配置如下:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

3.新增嵌入式Web服务器

Spring Boot 内置了 Tomcat、Jetty 和 Undertow 等嵌入式 Web 服务器,可以直接使用且不需要对服务器代码进行修改。

Spring Boot 的嵌入式 Web 服务器是指在程序中内嵌的 Web 服务器,可以不依赖于外部 Web 服务器进行 Web 应用开发和部署。目前 Spring Boot 支持三种嵌入式 Web 服务器:Tomcat、Jetty 和 Undertow。 下面介绍一些基本的使用步骤:

在 pom.xml 文件中添加对应的依赖。例如,使用 Tomcat 的依赖如下:

下面介绍一些基本的使用步骤(以Tomcat为例): 在 pom.xml 文件中添加对应的依赖。 org.springframework.boot spring-boot-starter-tomcat

4.新增应用运维(健康检测等)功能

pring Boot 还新增了一系列应用运维功能,其中最常用的包括:

  • 健康检查:Spring Boot 提供了 HealthIndicator 接口和 HealthEndpoint 端点来实现健康检查功能。通过配置这些组件,可以检查应用程序的状况,如数据库连接、磁盘空间、第三方服务等,从而及时发现并解决问题。
  • 监控:Spring Boot 的 Actuator 模块支持对应用程序进行监控,例如查看自己的 REST API 调用统计数据、日志信息、线程信息,在线诊断等。使用监控功能可以帮助开发者更好地了解应用程序的运行情况,从而更好地进行故障排除和优化。
  • 日志管理:Spring Boot 支持多种日志系统,内置了 Logback 和 Log4j2 等常用日志框架。使用 Spring Boot 配置日志框架,可以将日志记录到文件、控制台或远程服务器,并且可以在运行时动态地调整日志级别、打印格式等。
  • 应用性能监控:Spring Boot 集成了多种应用性能监控工具,如 Application Insights、NewRelic、AppDynamics 等。这些工具可以捕获应用程序的性能指标(如内存使用、CPU 使用率、请求响应时间等),并在控制台或云服务平台上展示。

总的来说,Spring Boot 提供了一系列应用运维工具,包括健康检查、监控、日志管理和应用性能监控等,開发者可以很方便地使用它们来监控应用程序的运行状态、追踪问题并及时解决。这些工具为开发者提供了极大的便利,让开发人员可以更好地关注与业务相关的事情,提高开发效率和应用程序的可维护性。

5.自动化任务配置

Spring Boot 提供了许多自动化配置选项,如事务管理器、跨域请求配置、监控和测试框架等。这些功能可以大大减少开发者的代码编写量,提高开发效率。

Spring Boot 提供了多种方式来配置自动化任务,其中最常用的是使用 Spring 的 Task Execution and Scheduling (任务执行和调度)框架。与传统的定时任务不同,Spring Boot 的自动化任务可以运行在多个线程中,并且可以配置定时任务触发时间、重复次数和间隔时间等。

以下是使用 Spring Boot 自动化任务的基本步骤:

  • 定义任务:在 Spring Boot 应用程序中定义一个需要定时执行的方法,并通过 @Scheduled 注解指定触发时间和重复次数等属性。
  • 启用任务:在应用程序的主类上添加@EnableScheduling 注解来启用任务调度框架,以便 Spring Boot 能够扫描并执行定时任务。
  • 配置任务属性:Spring Boot 任务执行和调度框架提供了多种属性来配置任务,如异步执行、固定速率执行、固定延迟执行等。开发者可以根据自己的需求对这些属性进行配置。

例如,下面代码中定义了一个基于定时任务的邮件发送服务:

@Service
public class MailService {
​
@Scheduled(initialDelay = 1000, fixedRate = 5000)
public void sendMail() {
// 发送邮件逻辑
}
}

使用@Scheduled注解标注sendMail方法,并在该注解中指定initialDelay和fixedRate参数,表示任务首次执行的延迟时间和任务执行的频率。然后在Spring Boot的主类上使用@EnableScheduling注解启用任务调度框架即可。

除了基于@Scheduled的方式外,Spring Boot 还支持 Cron 表达式、自定义 TaskScheduler 和异步执行等多种任务调度方式。无论采用哪种方式,Spring Boot 都能够提供一种简单而强大的自动化任务配置机制,帮助开发者更好地管理和规划应用程序的定时任务。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值