Spring Cloud Alibaba 实战(二) - 关于Spring Boot你不可不知道的实情

简介: 0 相关源码1 什么是Spring Boot一个快速开发的脚手架作用快速创建独立的、生产级的基于Spring的应用程序特性无需部署WAR文件提供starter简化配置尽可能自动配置Spring以及第三方库提供“生产就绪”功能,例如指标、健康检查、外部配置等无代码生成&无XML2 编写一个Spring Boot应用2.

0 相关源码

1 什么是Spring Boot

一个快速开发的脚手架

作用

快速创建独立的、生产级的基于Spring的应用程序

特性

  • 无需部署WAR文件
  • 提供starter简化配置
  • 尽可能自动配置Spring以及第三方库
  • 提供“生产就绪”功能,例如指标、健康检查、外部配置等
  • 无代码生成&无XML

2 编写一个Spring Boot应用

2.1 需求

  • 整合Spring MVC
  • /test路径(端点)

2.2 使用Spring Initializr快速创建Spring Boot应用

  • 编写测试代码
  • 运行输出

也可以使用

  • mvn clean install确保打包成功
  • java -jar 运行程序

3 组成分析

  • pom.xml
  • 配置文件
  • static目录
    存放静态文件
  • template目录
    存放模板文件,已过时

4 开发利器

添加依赖

写注解

写配置

5 Spring Boot Actuator

什么是Spring Boot Actuator

整合

健康信息

健康信息可以检查应用的运行状态,它经常被监控软件用来提醒人们生产环境是否存在问题。health端点暴露的默认信息取决于端点是如何被访问的。对于一个非安全,未认证的连接只返回一个简单的'status'信息。对于一个安全或认证过的连接其他详细信息也会展示
Spring Boot包含很多自动配置的HealthIndicators,你也可以写自己的。

自动配置的HealthIndicators

Spring Boot在合适的时候会自动配置以下HealthIndicators:

  • 下表显示了内置状态的默认状态映射:
  • 让我们配置一下health节点,并重启应用
  • 可看到对于磁盘的监控信息

应用信息

应用信息会暴露所有InfoContributor beans收集的各种信息,Spring Boot包含很多自动配置的InfoContributors,你也可以编写自己的实现。

自动配置的InfoContributors

Spring Boot会在合适的时候自动配置以下InfoContributors:

注 使用management.info.defaults.enabled属性可禁用以上所有InfoContributors。

自定义应用info信息

通过设置Spring属性info.*,你可以定义info端点暴露的数据。所有在info关键字下的Environment属性都将被自动暴露,例如,你可以将以下配置添加到application.properties:

info.app.encoding=UTF-8
info.app.java.source=1.8
info.app.java.target=1.8

注 你可以在构建时扩展info属性,而不是硬编码这些值。假设使用Maven,你可以按以下配置重写示例:

info.app.encoding=@project.build.sourceEncoding@
info.app.java.source=@java.version@
info.app.java.target=@java.version@

Git提交信息

info端点的另一个有用特性是,在项目构建完成后发布git源码仓库的状态信息。如果GitProperties bean可用,Spring Boot将暴露git.branch,git.commit.id和git.commit.time属性。

注 如果classpath根目录存在git.properties文件,Spring Boot将自动配置GitProperties bean。查看Generate git information获取更多详细信息。

使用management.info.git.mode属性可展示全部git信息(比如git.properties全部内容):

management.info.git.mode=full

构建信息

如果BuildProperties bean存在,info端点也会发布你的构建信息。

注 如果classpath下存在META-INF/build-info.properties文件,Spring Boot将自动构建BuildProperties bean。Maven和Gradle都能产生该文件

  • 配置info
  • 启动观察输出信息
  • SpringBoot支持很多端点,除了默认显示的几个,还可以激活暴露所有端点

  • 如果只想暴露某个端点也是可以的
  • 查看JVM最大内存

6 Spring Boot配置管理

yml配置

  • 注意缩进同一与冒号左右的空格
  • 注意与properties文件的不同

配置管理的各种姿势

配置管理常用方式

  • 配置文件
  • 环境变量
  • 外部配置文件
    会读取和jar文件相同路径下的配置文件,且优先级高于jar配置
  • 命令行参数

尽量保持配置最简单且统一,规避优先级冲突问题!

7 Profile

不同环境不同配置

使用

  • yml配置文件

  • 添加参数并启动程序
  • 查看端点以确认信息
  • 那么如果不指定参数呢,又运行的何种环境呢,让我们来看一下:
  • 默认是default,难道我非要将dev环境改为default才可以使用默认配置?显然SpringBoot另辟蹊径:

如果不是yml文件,而是用properties配置呢


  • 指定参数

  • 默认dev
  • 注意先将启动参数prod关闭,避免配置优先级冲突!

8 总结

  • 使用Spring Initializr快速创建应用
  • 应用组成分析
  • 开发三部曲
  • Actuator
  • 配置管理
  • Profile

参考

Spring Boot官方文档

目录
相关文章
|
12月前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
12月前
|
前端开发 Java 微服务
《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
|
12月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
893 2
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
7710 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
存储 JSON Java
1076 0
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
3097 0
|
前端开发 Java Maven
Spring 和 Spring Boot 之间的比较
本文对比了标准Spring框架与Spring Boot的区别,重点分析两者在模块使用(如MVC、Security)上的差异。Spring提供全面的Java开发基础设施支持,包含依赖注入和多种开箱即用的模块;而Spring Boot作为Spring的扩展,通过自动配置、嵌入式服务器等功能简化开发流程。文章还探讨了两者的Maven依赖、Mvc配置、模板引擎配置、启动方式及打包部署等方面的异同,展示了Spring Boot如何通过减少样板代码和配置提升开发效率。总结指出,Spring Boot是Spring的增强版,使应用开发、测试与部署更加便捷高效。
1882 11
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
744 0
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
589 0