| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring Boot 使用及启动源码解析一 -> 正文阅读 |
|
[Java知识库]Spring Boot 使用及启动源码解析一 |
前言本篇文章会介绍Spring Boot 的基本原理 以及以及一些使用,常见的配置方式等,如何从单一架构延申到现在的前后端分离(垂直应用架构)的项目,从网站流量很小到现在的网站流量动则几百万上下的 发展, 加速前端的架构。到后面 的分布式服务架构。都是提升效率。 概述通过 Spring Boot,您可以轻松创建独立的、生产级基于 Spring 的应用程序,您可以“运行”这些应用程序。我们对Spring平台和第三方库持固执己见的观点,因此您可以以最小的麻烦开始。大多数弹簧启动应用需要最少的弹簧配置。 特点
这都是spring boot 的 提供给我们的优秀点,也是好用的地方。 而微服务的集成等,都是 集成来自于springboot? 这是主流的一种方式。一定是逃不过的。 这里就涉及到一个概念,单体架构,soa架构 微服务架构 单体架构all in one 将一个应用中所有服务都封装到一个应用中,无论什么系统,都将数据库,web等功能模块放到一个可执行文件中 SOA架构面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。 微服务架构微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。 所以spring boot 也是基于上面框架的 基础 ,管理所有对象的同时,并且 在基础上 集成其他中间件,这也是spring boot? 构建出来的。 简单的使用我们需要从创建一个 Maven?
最简单的使用方式要完成我们的应用程序,我们需要创建一个 Java 文件。默认情况下,Maven 从?
@SpringBootApplication在项目中最常见的设置方式 也可以使用?@SpringBootApplication? 注解,好处是里面可以配置? ?可以重写的操作
?
继承? SpringBootServletInitializer? ?方式,对启动 以及打包的设置
springboot项目,若打包成war包,使用外置的tomcat启动 1、需要继承?org.springframework.boot.context.web.SpringBootServletInitializer类 2、然后重写configure(SpringApplicationBuilder application)方法 Spring boot 配置文件properties的方式Common Application Properties (spring.io) 包括核心的一些配置文件方式, 主要是 key=value 的方式 YAML 文件的方式YAML作为属性配置文件,通常以 .yml 或者 .yaml 为后缀名。 YAML对语法的要求比较严格: 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab键,必须使用空格缩进 缩进的空格数不重要,但是同级元素必须左侧对齐 ‘#’ 表示注释 字符串无需加引号,如果加,单引号对与双引号对都可以 ? 并且根据具体的值? 会有提示 出来? 对应的数据源等提示方式 ? 有个? @configurationproperties 配置? 方式 ? ?对于自定义的方式。 可以绑定 到具体的类上面? 利用这个注解 ? 只要对应的名字相同即可 ?SpringbootApplication 的启动源代码??springapplication.run 方法,之前的? 初始化? 当前 这个类要做的事情。 到主函数中,包括 resourceloader? 设置等等 ?在属性的时候设置的 ,包括所有的? 看存储的地方 ? 进入 解析 判断 解析当前应用程序的类型。?? ? ? 到了后面的,加载? ?资源等。 ? 这里涉及到? 读取 所有的 加载 所有的? ? 自动配置的文件数据,? 加载类。 这里用来加载出来 对应 的? key 和value值,? 并且反射出来。 ? 这个方法中 进行 创建 实例化,? ? 采用forname的方式, 找到? 对象, 进行实例化类。 ? 排好序,然后? 将初始化的类,进行放到容器中。 ? 找到主类。 ? 准备完毕过后,进行 开始 启动? run方法 这里stopwatch 计算时间。? 设置所有的awt 图像 化, ? ?前置准备的过程 加载 springapplicationrunlistener ?加载监听的动能。 提供? 监听 的 ? ? ?把所有的listener? 的factory? 文件加载 所有的listener? 类中数据。 包括部分的启动代码 ? 在? 启动中加载所有的listener 数据? ? 监听器, eventpublish lish ?都可以做一些监听功能,某些操作事件的监听功能等等,都是有些地方重要的事情。 准备当前环境 信息,包括所有的 环境配置等等。
?包括所有的eventpubish 事件监听器? 进行监听等等。 前置的处理等等。 后面的部分更多的是使用spring 中,包括? applicationcontext? ?创建 ,以及? refreshcontext? 这也是 spring中很重要的部分,? ?这部分可以在spring框架中去查看。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/10 15:21:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |