跨境互联网 跨境互联网
首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)
首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)
  • Spring Data JPA
  • MyBatis

    • Mybatis高级使用

      • 自定义持久层框架
      • Mybatis相关概念
      • Mybatis基本应用
      • Mybatis配置文件深入
      • Mybatis复杂映射开发
      • Mybatis注解开发
      • Mybatis缓存
      • Mybatis插件
      • Mybatis架构原理
      • Mybatis源码剖析
      • 设计模式
    • Mybatis源码剖析

      • MyBatis架构原理&主要组件
      • 源码剖析-源码环境搭建
      • 源码剖析-初始化-如何解析的全局配置文件?
      • 源码剖析-初始化-如何解析的映射配置文件?
      • 源码剖析-SqlSource创建流程
      • 源码剖析-揭秘SqlSession执行主流程
      • 源码剖析-揭秘如何设置的参数?
      • 源码剖析-结果集映射流程
      • 源码剖析-获取Mapper代理对象流程
      • 源码剖析-invoke方法
      • 源码剖析-插件机制
    • Mybatis-Plus
    • 资料
  • Spring

    • Spring高级使用

      • Spring概述
      • Spring核心思想
      • 手写实现 IoC 和 AOP
      • Spring IOC 应用
      • Spring IOC源码深度剖析
      • Spring AOP 应用
      • Spring AOP源码深度剖析
    • Spring源码剖析

      • Spring架构设计
      • 核心组件介绍
      • IOC流程图
      • Bean的生命周期
      • Spring源码环境构建
      • IOC源码深度剖析
      • Bean-循环依赖
      • AOP源码深度剖析
      • MVC流程&源码剖析
    • 资料
  • SpringBoot

    • SpringBoot高级使用

      • SpringBoot基础
      • SpringBoot原理深入及源码剖析
      • SpringBoot数据访问
      • SpringBoot视图技术
      • SpringBoot缓存管理
    • SpringBoot源码剖析

      • 介绍
        • SpringBoot概念
          • 什么是SpringBoot
          • SpringBoot主要特性
        • 1 SpringBoot源码环境构建
          • 1.1 下载源码
          • 1.2 环境准备
          • 1.2 编译源码
          • 1.3 导入IDEA
          • 1.4 新建一个module
          • 1.5 新建一个Controller
      • 源码剖析-依赖管理
      • 源码剖析-自动配置
      • 源码剖析-Run方法执行流程
      • 源码剖析-自定义Starter
      • 源码剖析-内嵌Tomcat
      • 源码剖析-自动配置SpringMVC
    • 资料
  • Jdk

    • Object类
    • ArrayList类
    • LinkedList类
    • HashMap类
    • Synchronized
    • ConcurrentHashMap
  • Tomcat

    • Tomcat架构设计&源码剖析
    • Apache Tomcat Web应用服务器
  • Netty

    • 基础

      • Netty是什么?
      • Netty的高性能设计
      • Netty快速入⻔
      • Netty核心组件
      • 详解ByteBuf
    • 进阶

      • Netty编解码器
      • TCP粘包拆包的问题及解决
      • 自研RPC实战
      • Netty核心源码剖析
      • Netty优化建议
    • 资料
  • 若依

    • 源码分析

      • 前端-页面权限
      • 前端-多级目录
      • 前端-页签缓存
      • 前端-使用图标
      • 前端-使用字典(dicts方式)
      • 前端-使用参数
      • 前端-配置后端接口地址或域名
      • 前端-部署应用到子路径
      • 禁止多终端同时登录实现
      • 静态资源整合到后端访问
      • 使用加密方式传输登录密码
      • 多数据源事务的一致性
      • 主子表代码生成详解
      • 3.4.0版本更新介绍
      • 使用undertow容器
      • 集成actuator实现优雅关闭应用
      • 集成knife4j实现swagger文档增强
      • 集成easyexcel实现excel表格增强
      • 集成mybatis-plus实现mybatis增强
      • 集成ip2region实现离线IP地址定位
      • 集成druid实现数据库密码加密
      • 集成aj-captcha实现滑块验证码
      • 集成sharding-jdbc实现分库分表
      • v3.5.0版本更新介绍
      • 使用docker实现一键部署
      • v3.6.0版本更新介绍
      • 限流控制详解
      • v3.7.0版本更新介绍
      • v3.8.0版本更新介绍
      • v3.8.1版本更新介绍
      • 资料
    • 源码分析
    • Ruoyi-Flowable
  • 开源框架
  • SpringBoot
  • SpringBoot源码剖析
Revin
2023-06-15
目录

介绍

hm

# SpringBoot概念

# 什么是SpringBoot

spring官方的网站:https://spring.io/

image-20220310193130457

翻译:通过Spring Boot,可以轻松地创建独立的,基于生产级别的基于Spring的应用程序,并且可以“运行”它们

其实Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。

以下内容来自百度百科

SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决

# SpringBoot主要特性

1、 SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中;

2、 使编码变得简单,SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率。

3、 自动配置:SpringBoot的自动配置特性利用了Spring对条件化配置的支持,合理地推测应用所需的bean并自动化配置他们;

4、 使部署变得简单,SpringBoot内置了三种Servlet容器,Tomcat,Jetty,undertow.我们只需要一个Java的运行环境就可以跑SpringBoot的项目了,SpringBoot的项目可以打成一个jar包。

# 1 SpringBoot源码环境构建

# 1.1 下载源码

  • https://github.com/spring-projects/spring-boot/releases
  • 下载对应版本的源码(课程中采用spring-boot-2.2.9.RELEASE)

image-20201117112259678

# 1.2 环境准备

1、JDK1.8+

2、Maven3.5+

image-20211112102822549

# 1.2 编译源码

  • 进⼊spring-boot源码根⽬录
  • 执⾏mvn命令: mvn clean install -DskipTests -Pfast // 跳过测试⽤例,会下载⼤量 jar 包(时间会长一些)

image-20211112102841922

# 1.3 导入IDEA

将编译后的项目导入IDEA中

image-20201117154217723

打开pom.xml关闭maven代码检查

<properties>
        <revision>2.2.9.RELEASE</revision>
        <main.basedir>${basedir}</main.basedir>
        <disable.checks>true</disable.checks>
</properties>

# 1.4 新建一个module

image-20220310150910012

# 1.5 新建一个Controller

@RestController
public class TestController {


   @RequestMapping("/test")
   public String test(){
      System.out.println("源码环境搭建完成");
      return "源码环境搭建完成";
   }
   
}

启动测试

image-20211124111416183

上次更新: 2023/08/10, 16:25:16
SpringBoot缓存管理
源码剖析-依赖管理

← SpringBoot缓存管理 源码剖析-依赖管理→

Theme by Vdoing | Copyright © 2023-2023 KuaJingNet.com | 跨境互联网
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式