当前位置: 首页 > article >正文

【Springboot基础知识】

  • 一.为什么选择 Spring Boot?
  • 二.Spring Boot 核心功能
  • 三.Spring Boot 入门
    • 3.1创建项目
    • 3.2 运行程序
  • 四.开发 Web 应用
    • 4.1配置
  • 五.Spring Boot 扩展
  • 六.自动装配
    • 6.1自动配置原理
    • 6.2自动配置示例
    • 6.3自动配置优点
    • 6.4自动配置注意事项
  • 七.学习资源
  • 八.总结

Spring Boot 是一款开源的 Java 框架,旨在简化 Spring 应用的创建、运行、调试和部署。它提供了一个约定大于配置的默认配置,并通过起步依赖和自动配置功能,极大地简化了开发过程。Spring Boot 不仅仅是 Spring 的增强,而是提供了一种全新的方式来使用 Spring,让开发者能够专注于业务逻辑,而无需过多关注底层细节。

一.为什么选择 Spring Boot?

Spring Boot 具有以下优点:

  • 简化开发:Spring Boot 提供了起步依赖和自动配置功能,无需手动编写 XML 配置,极大地简化了开发过程。
  • 快速启动:Spring Boot 应用启动速度快,无需繁琐的部署流程。
  • 易于调试:Spring Boot 内置了开发工具,方便开发者进行调试。
  • 可扩展性:Spring Boot 支持多种技术和配置,可以根据需求进行扩展。
  • 社区支持:Spring Boot 拥有庞大的社区支持,可以方便地获取帮助和资源。

二.Spring Boot 核心功能

Spring Boot 提供了以下核心功能:

  • 起步依赖:Spring Boot 提供了各种起步依赖,将常用的依赖打包在一起,例如 spring-boot-starter-web,包含了 Spring MVC、Tomcat 和日志依赖。
  • 自动配置:Spring Boot 根据应用的需求自动配置 Spring 应用,例如根据 @EnableAutoConfiguration 注解自动配置 Spring Bean。
  • 内嵌服务器:Spring Boot 默认使用 Tomcat 作为内置服务器,无需额外配置。
  • 命令行工具:Spring Boot 提供了命令行工具,方便开发者打包和运行应用。
  • 开发工具:Spring Boot 内置了开发工具,例如热部署、调试和测试等功能。

三.Spring Boot 入门

3.1创建项目

Spring Boot 项目可以通过多种方式创建:

  • Maven 方式:使用 Maven 命令创建项目,并指定起步依赖和版本等信息。
  • Spring Initializr:访问 Spring Initializr 网站,选择所需的起步依赖和功能,并生成项目结构。
  • 阿里云地址:访问阿里云 Start.spring.io 网站,选择所需的起步依赖和功能,并生成项目结构。

3.2 运行程序

创建项目后,运行启动类即可启动 Spring Boot 应用。Spring Boot 默认使用 Tomcat 作为服务器,并使用 logback 记录日志。

@SpringBootApplication
public class SpringbootDemo1Application {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootDemo1Application.class, args);
    }
}

四.开发 Web 应用

Spring Boot 支持开发 Web 应用,可以使用 @RestController 注解创建控制器,并使用 @RequestMapping 注解定义路由。

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello() {
        return "Hello springBoot!";
    }
}

4.1配置

Spring Boot 使用 application.properties 或 application.yml 文件进行配置,可以覆盖默认配置。

server:
  port: 8088

五.Spring Boot 扩展

Spring Boot 提供了多种扩展功能,例如:

  • 数据库集成:支持多种数据库集成,例如 MySQL、PostgreSQL、Oracle 和 SQL Server。
  • 消息队列:支持多种消息队列集成,例如 RabbitMQ、Kafka 和 ActiveMQ。
  • 缓存:支持多种缓存集成,例如 Redis、EhCache 和 Guava Cache。
  • 安全:支持多种安全框架集成,例如 Spring Security、Apache Shiro 和 OAuth2。
  • 微服务:支持 Spring Cloud 微服务架构,可以轻松创建微服务应用。
  • 任务调度:支持使用 Quartz 或 Task 实现定时任务。
  • 监控和管理:支持使用 Actuator 模块实现监控和管理功能。
  • 性能测试:支持使用 Spring Boot Actuator 的端点执行性能测试。
  • 开发工具:支持 Spring Boot DevTools 实现热部署功能。
  • 测试:支持多种测试框架集成,例如 JUnit、TestNG 和 Mockito。

六.自动装配

Spring Boot 的自动配置是其最核心的特性之一,它能够自动配置 Spring 应用,无需手动编写 XML 配置。自动配置背后的原理是 Spring 的条件注解和约定大于配置的原则。

6.1自动配置原理

Spring Boot 使用 @EnableAutoConfiguration 注解来启用自动配置功能。该注解会触发 Spring 的自动配置机制,根据应用的需求自动配置 Spring Bean。
自动配置机制主要依赖于以下组件:

  • 条件注解:Spring 提供了各种条件注解,例如 @ConditionalOnClass@ConditionalOnBean@ConditionalOnMissingBean 等。这些注解可以根据不同的条件判断是否配置特定的 Bean。
  • Spring Factories Loader:Spring Factories Loader 用于加载配置文件,例如 spring.factories。Spring Boot 将自动配置的配置项放在 spring-boot-autoconfigure 包下的 META-INF/spring.factories 文件中。
  • 起步依赖:Spring Boot 的起步依赖包含了各种自动配置的配置项,例如 spring-boot-starter-web 包含了 Spring MVC、Tomcat 和日志的自动配置项。

6.2自动配置示例

下面是一个简单的自动配置示例:

@SpringBootApplication
public class SpringbootDemo1Application {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootDemo1Application.class, args);
    }
}

在这个示例中,@SpringBootApplication 注解会启用自动配置功能。Spring Boot 会自动配置以下 Bean:

  • DispatcherServlet:Spring MVC 的核心组件,用于处理 Web 请求。
  • EmbeddedServletContainer:嵌入式服务器,例如 Tomcat,用于启动 Web 应用。
  • Logging:日志配置,使用 Logback 记录日志。

6.3自动配置优点

  • 简化开发:无需手动编写 XML 配置,减少了开发工作量。
  • 快速启动:自动配置机制可以快速启动 Spring 应用。
  • 可定制性:可以使用条件注解自定义自动配置的行为。
  • 可维护性:自动配置的配置项都集中在一个地方,方便维护。

6.4自动配置注意事项

  • 起步依赖:确保使用的起步依赖包含了所需的自动配置项。
  • 条件注解:合理使用条件注解,避免过度配置。
  • 自定义配置:可以使用 @Configuration 注解自定义配置,覆盖默认配置。

七.学习资源

  • Spring Boot 官方文档:https://spring.io/projects/spring-boot
  • Spring Boot 教程:https://www.tutorialspoint.com/springboot/
  • Spring Boot 社区:https://spring.io/community
  • Spring Cloud 官方文档:https://spring.io/projects/spring-cloud

八.总结

Spring Boot 是一款功能强大的框架,可以帮助开发者快速创建和部署 Spring 应用。通过本文的学习,相信你已经了解了 Spring Boot 的基本用法、扩展功能和实战案例,可以开始构建自己的 Spring Boot 应用。


http://www.kler.cn/news/295036.html

相关文章:

  • 基于 rt-thread的I2C操作EEPROM(AT24C02)
  • 如何在mac上玩使命召唤手游?苹果电脑好玩的第一人称射击游戏推荐
  • 【linux学习指南】Linux编译器 gcc和g++使用
  • python 中使用tkinter构建一个图片的剪切器-附源码
  • 漫谈设计模式 [15]:观察者模式
  • 9. 相机控件OrbitControls
  • C++11线程池、多线程编程(附源码)
  • 信息熵|atttion矩阵的注意力熵
  • 设计并用Java实现一个简易的规则引擎
  • Python | Leetcode Python题解之第392题判断子序列
  • 【leetcode详解】爬楼梯:DP入门典例(附DP通用思路 同类进阶练习)
  • 使用Protocol Buffers传输数据
  • 在vscode中用virtual env的方法
  • git如何灵活切换本地账号对应远程github的两个账号
  • 代码随想录:279. 完全平方数
  • 如何在Selenium中使用Chrome进行网络限速
  • ComfyUI+Krea免费利用AI制作网站萌宠IP,五步搞定制作AI萌宠
  • React 响应事件
  • 【Godot4.3】多边形的斜线填充效果基础实现
  • 在Ubuntu 20.04上安装Nginx的方法
  • 懒人笔记-opencv4.8.0篇
  • 【详解 Java 注解】
  • 一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)
  • 分数阶微积分MATLAB计算
  • 将你的github仓库设置为web代理
  • Java零基础-如何在分布式系统中进行日志管理?
  • 【鸿蒙】HarmonyOS NEXT星河入门到实战1-开发环境准备
  • Vulnhub:Dr4g0n b4ll 1
  • Qt/C++开源项目 TCP客户端调试助手(源码分享+发布链接下载)
  • <class ‘pyspark.sql.dataframe.DataFrame‘>