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

上海做网站天锐南京个人做网站的

上海做网站天锐,南京个人做网站的,网站建设及使用方案,四川网站制作哪家好文章目录 1. 准备阶段#xff1a;应用启动的入口2. 创建 SpringApplication 对象#xff1a;开始启动工作3. 配置环境#xff08;Environment#xff09;#xff1a;识别开发环境与生产环境4. 启动监听器和初始化器#xff1a;感知启动的关键事件5. 创建 ApplicationCont… 文章目录 1. 准备阶段应用启动的入口2. 创建 SpringApplication 对象开始启动工作3. 配置环境Environment识别开发环境与生产环境4. 启动监听器和初始化器感知启动的关键事件5. 创建 ApplicationContext 容器加载核心 Bean6. 自动配置Auto-Configuration自动加载所需 Bean7. 启动内嵌 Web 服务器Tomcat、Jetty、Undertow8. 执行 CommandLineRunner 和 ApplicationRunner9. 启动完成应用已准备好接收请求总结推荐阅读文章 Spring Boot 是一个帮助 Java 开发者快速搭建和启动应用的框架。了解它的启动过程可以帮助我们深入理解 Spring Boot 的工作原理尤其是它如何将配置、组件扫描、自动配置等内容串联起来。我们用一个直观的流程来解读 Spring Boot 的启动过程。 1. 准备阶段应用启动的入口 Spring Boot 应用程序的启动通常从一个 main 方法开始在 Application 类中。这个 main 方法会调用 SpringApplication.run(Application.class, args)其实就是从这一步开始启动整个应用。 流程描述 你可以把 SpringApplication.run() 理解为一个“开关”它会启动一连串的动作。一旦调用 run()Spring Boot 就会进入自动化启动的“准备阶段”。 2. 创建 SpringApplication 对象开始启动工作 SpringApplication.run() 会首先创建一个 SpringApplication 对象。这个对象可以看作是启动应用的“总指挥”主要负责 设置应用的环境Environment比如是否是开发环境、生产环境等。加载初步配置。为后续的步骤做准备工作比如准备监听器、事件发布等。 小贴士在这个阶段Spring Boot 会检查一些常见的配置文件如 application.properties 或 application.yml并准备将这些配置信息应用到启动流程中。 3. 配置环境Environment识别开发环境与生产环境 Spring Boot 的 SpringApplication 对象会进一步去配置环境。比如通过读取配置文件或者系统属性它能识别应用当前是在开发环境还是生产环境并根据不同环境做适当的优化。 案例 假设你在 application.yml 中配置了 spring.profiles.activedevSpring Boot 会加载适用于 dev 环境的配置。这种分环境的配置机制让应用在开发和生产之间可以无缝切换。 4. 启动监听器和初始化器感知启动的关键事件 Spring Boot 启动过程中还会初始化一些监听器Listeners和初始化器Initializers。它们的作用是“监听”启动过程中的各个步骤并在关键时刻触发特定的逻辑。 案例 你可以注册一个监听器在 Spring Boot 启动时触发一些定制的行为比如打印系统信息、记录日志等。 效果 这种机制帮助开发者对启动过程拥有更高的可控性也可以在启动时执行一些初始化工作。 5. 创建 ApplicationContext 容器加载核心 Bean 这个步骤中Spring Boot 会启动 ApplicationContext应用上下文它可以理解为一个容器负责管理应用中的所有 Bean。 加载过程 ApplicationContext 会扫描项目中被 Component、Service、Repository 等注解标记的类把它们注册为 Bean。Spring Boot 还会根据自动配置Auto-Configuration加载额外的 Bean。比如发现项目里有数据库依赖时自动配置会加载数据库连接池的相关 Bean。 案例 当你用 SpringBootApplication 注解启动项目时自动配置会根据类路径下的依赖比如 spring-boot-starter-web帮你自动加载 Web 服务器的相关配置和 Bean。 6. 自动配置Auto-Configuration自动加载所需 Bean 自动配置是 Spring Boot 启动的核心亮点。Spring Boot 会检测项目中的依赖项并根据依赖自动加载对应的配置。比如 如果有 Web 相关的依赖如 spring-boot-starter-webSpring Boot 会自动配置一个内嵌的 Tomcat 服务器。如果项目中有数据库相关的依赖如 spring-boot-starter-data-jpa它会自动加载数据源、事务管理等 Bean。 案例 假设项目中添加了一个 Redis 依赖如 spring-boot-starter-data-redisSpring Boot 会自动配置 Redis 连接池、RedisTemplate 等 Bean免去了手动配置的麻烦。 7. 启动内嵌 Web 服务器Tomcat、Jetty、Undertow 如果你的项目是一个 Web 项目包含 Web 依赖Spring Boot 会启动一个内嵌的 Web 服务器比如 Tomcat。这个步骤会绑定端口默认是 8080并启动一个 Web 服务准备接收 HTTP 请求。 效果 Spring Boot 的内嵌服务器特性让我们无需安装和配置外部服务器这也是 Spring Boot 应用可以直接运行的原因之一。 8. 执行 CommandLineRunner 和 ApplicationRunner 在 Spring Boot 的启动流程最后如果项目里实现了 CommandLineRunner 或 ApplicationRunner 接口的 Bean那么这些 Bean 的 run() 方法会被调用执行启动后的收尾工作。 案例 例如你可以实现一个 CommandLineRunner在项目启动完成后执行一些初始化操作比如从数据库加载默认数据或检查系统状态等。 9. 启动完成应用已准备好接收请求 到这里Spring Boot 的启动流程基本完成。你的应用已经启动所有配置已加载、Bean 已注册服务也在监听端口等待请求。整个启动过程就是一个自动化和配置化的过程让你专注业务代码而不需要为每个 Bean、每个组件的配置费心。 总结 Spring Boot 的启动过程可以理解为九个关键步骤 启动入口调用 SpringApplication.run()启动流程。创建 SpringApplication 对象做启动前的准备。配置环境识别开发环境与生产环境。启动监听器和初始化器处理关键事件。创建 ApplicationContext 容器加载 Bean。自动配置根据依赖自动加载相关配置。启动 Web 服务器若是 Web 项目启动内嵌服务器。执行 CommandLineRunner / ApplicationRunner启动后执行收尾工作。启动完成应用准备好开始接收请求。 Spring Boot 的启动过程充分展示了其“约定优于配置”的理念极大简化了 Java 项目的启动流程。希望这篇文章能帮助你对 Spring Boot 的启动过程有更清晰的认识 推荐阅读文章 由 Spring 静态注入引发的一个线上T0级别事故真的以后得避坑 如何理解 HTTP 是无状态的以及它与 Cookie 和 Session 之间的联系 HTTP、HTTPS、Cookie 和 Session 之间的关系 什么是 Cookie简单介绍与使用方法 什么是 Session如何应用 使用 Spring 框架构建 MVC 应用程序初学者教程 有缺陷的 Java 代码Java 开发人员最常犯的 10 大错误 如何理解应用 Java 多线程与并发编程 把握Java泛型的艺术协变、逆变与不可变性一网打尽 Java Spring 中常用的 PostConstruct 注解使用总结 如何理解线程安全这个概念 理解 Java 桥接方法 Spring 整合嵌入式 Tomcat 容器 Tomcat 如何加载 SpringMVC 组件 “在什么情况下类需要实现 Serializable什么情况下又不需要一” “避免序列化灾难掌握实现 Serializable 的真相二” 如何自定义一个自己的 Spring Boot Starter 组件从入门到实践 解密 Redis如何通过 IO 多路复用征服高并发挑战 线程 vs 虚拟线程深入理解及区别 深度解读 JDK 8、JDK 11、JDK 17 和 JDK 21 的区别 10大程序员提升代码优雅度的必杀技瞬间让你成为团队宠儿 “打破重复代码的魔咒使用 Function 接口在 Java 8 中实现优雅重构” Java 中消除 If-else 技巧总结 线程池的核心参数配置(仅供参考) 【人工智能】聊聊Transformer深度学习的一股清流(13) Java 枚举的几个常用技巧你可以试着用用 由 Spring 静态注入引发的一个线上T0级别事故真的以后得避坑 如何理解 HTTP 是无状态的以及它与 Cookie 和 Session 之间的联系 HTTP、HTTPS、Cookie 和 Session 之间的关系 使用 Spring 框架构建 MVC 应用程序初学者教程 有缺陷的 Java 代码Java 开发人员最常犯的 10 大错误 Java Spring 中常用的 PostConstruct 注解使用总结 线程 vs 虚拟线程深入理解及区别 深度解读 JDK 8、JDK 11、JDK 17 和 JDK 21 的区别 10大程序员提升代码优雅度的必杀技瞬间让你成为团队宠儿 探索 Lombok 的 Builder 和 SuperBuilder避坑指南一 为什么用了 Builder 反而报错深入理解 Lombok 的“暗坑”与解决方案二
http://www.yingshimen.cn/news/48395/

相关文章:

  • 手机网站 html5秦皇岛市住房和城乡建设局网站
  • 企业手机网站建设讯息程序员给别人做的网站违法
  • wordpress 用户评论嘉兴网站seo
  • 盐城网站优化推广工作室三门峡市住房建设局网站
  • 单位网站的方案南海区住房城乡建设和水务局网站
  • 旅游类网站如何做推广网上服务大厅12333
  • 网站建设 页面大连网络推广广告代理
  • 我想做网站怎么做网站制作服务订单
  • 网站开发公司 杭州阿里域名
  • 网站建设公司现在还挣钱吗深圳龙岗房价2023最新价格
  • 做国外网站收款怎么收wordpress丢失连接
  • 新开河街做网站公司wordpress 黑糖
  • 注册网站域名平台凡科论坛网站制作
  • 企业网站模板编辑软件广州10大网站服务品牌
  • wordpress 采集 api谷歌怎么做网站优化
  • 什么网站备案容易审核无锡餐饮网站建设
  • 苏州网站建设机构阿里云网站的logo怎么写进去的
  • 木材网站建设哪家好网站开发代码用什么软件
  • 网站建设电话销售说不需要网络营销去哪里培训
  • 做个 公司网站多少钱东莞优化网页关键词
  • 网站建设素材做网站要在工商备案吗
  • 欧赛网站建设手机版怎么做微电影网站
  • 服装网站建设的利益分析网站开发如何引用函数
  • 旅行社销售网站建设方案简单的个人网页模板
  • 做快三网站广告中国
  • 天津网站建设开发维护怎么注册网址
  • 做外贸一般去什么网站找客户网站备案期间停止解析
  • 页面有哪几个网站可以做360网站图标怎么做
  • 建一个网站怎么赚钱创建网站宝典
  • 网站后台更新的内容出不来众v创业营网站开发