SpringBoot源码解读与原理分析(一)SpringBoot整体概述

文章目录

  • [第1章 SpringBoot整体概述](#第1章 SpringBoot整体概述)
    • [1.1 Spring Framework](#1.1 Spring Framework)
      • [1.1.1 Spring Framework的历史](#1.1.1 Spring Framework的历史)
      • [1.1.2 IOC与AOP](#1.1.2 IOC与AOP)
    • [1.2 Spring Boot与Spring Framework](#1.2 Spring Boot与Spring Framework)
    • [1.3 Spring Boot的核心特性](#1.3 Spring Boot的核心特性)
    • [1.4 Spring Boot的体系](#1.4 Spring Boot的体系)

第1章 SpringBoot整体概述

Spring Framework 开发团队

支持不依赖外部容器的Web应用程序体系结构

2014年 Spring Boot 1.0.0

开发者不必再纠结繁琐的配置、环境的部署等繁琐问题,而只需专注于业务的开发

Spring Boot 不是一个全新的框架,而是基于Spring Framework的"二次封装"

1.1 Spring Framework

一站式企业级Java开发框架

  • IOC Inverse of Control 控制反转
  • AOP Aspect Oriented Programming 面向切面编程
  • 松耦合:对象之间的关系解耦
  • 可配置:外部配置容器及容器中的Bean
  • 一站式:覆盖多领域(JavaWeb、分布式、微服务、Java SE、GUI等)
  • 第三方整合:持久层MyBatis和Hibernate、表现层SpringWebMvc和Struts2、权限校验Spring Security和Shiro

1.1.1 Spring Framework的历史

替代J2EE时期的EJB规范体系

1.1.2 IOC与AOP

IOC 的最直接体现,就是作为Spring Framework的核心容器,这个核心容器又被称为IOC容器,它在内部管理了基于Spring Framework的应用中会用到的所有组件(即Bean)。

可通过模式注解@Component、@Controller等实现组件装配。

使用AOP技术可以通过预编译/运行时动态代理的方式,对目标对象动态添加功能特性(即增强)。

AOP的应用可以使核心业务逻辑与系统级服务(如事务控制、日志审计、权限校验等)分离,从而实现组件功能的"可插拔"。

1.2 Spring Boot与Spring Framework

Spring Boot是开发者与Spring Framework之间的一道中间层,帮助开发者完成部分基于Spring Framework的项目的配置、管理、部署等工作,让开发者专注于业务开发,而不需关注项目环境搭建和配置。

简化基于Spring Framework的项目搭建和应用开发,但不是替代。

1.3 Spring Boot的核心特性

  • 约定大于配置(convention over configuration):对常见场景有约定的默认配置,并自动装配,达到少配置、甚至不配置就能正常启动项目的效果。
  • 场景启动器 starter:整合常用场景,只需引入依赖
  • 自动装配:模块装配+条件装配,动态注册缺少/必要的组件
  • 嵌入式Web容器:嵌入式Web容器,可以直接以一个单体的jar包运行
  • 生产级特性:生产运维型功能特性,如健康检查、监控指标等

1.4 Spring Boot的体系

可整合的技术场景非常多:

SpringWebMvc & SpringWebFlux -- Web应用开发

Thymeleaf & Freemarker -- Web视图渲染

Spring Security -- 安全控制

Spring Data Access -- 数据访问(SQL & NoSQL)

Spring Cache -- 缓存实现

Spring Message -- 消息中间件(JMS & AMQP)

Spring Quartz -- 定时任务

Spring Distribution Transaction -- 分布式事务(JTA)

Spring Session -- 分布式Session

Container Image -- 容器镜像构建支持

基于starter场景启动器的整合不需要考虑版本问题,Spring Boot已适配。

······

本节完,更多内容请查阅分类专栏:SpringBoot源码解读与原理分析

相关推荐
小阳拱白菜44 分钟前
java异常学习
java
程序员岳焱2 小时前
Java 与 MySQL 性能优化:Java 实现百万数据分批次插入的最佳实践
后端·mysql·性能优化
FrankYoou2 小时前
Jenkins 与 GitLab CI/CD 的核心对比
java·docker
计算机毕设定制辅导-无忧学长2 小时前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
麦兜*2 小时前
Spring Boot启动优化7板斧(延迟初始化、组件扫描精准打击、JVM参数调优):砍掉70%启动时间的魔鬼实践
java·jvm·spring boot·后端·spring·spring cloud·系统架构
KK溜了溜了3 小时前
JAVA-springboot 整合Redis
java·spring boot·redis
大只鹅3 小时前
解决 Spring Boot 对 Elasticsearch 字段没有小驼峰映射的问题
spring boot·后端·elasticsearch
ai小鬼头3 小时前
AIStarter如何快速部署Stable Diffusion?**新手也能轻松上手的AI绘图
前端·后端·github
天河归来3 小时前
使用idea创建springboot单体项目
java·spring boot·intellij-idea
程序员柳3 小时前
基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot
数据库·微信小程序·layui