[202002][Spring 实战][第5版][张卫滨][译]
[202002][Spring 实战][第5版][张卫滨][译]
habuma/spring-in-action-5-samples: Home for example code from Spring in Action 5.
https://github.com/habuma/spring-in-action-5-samples
第 1 部分 Spring 基础
第 1 章 Spring 起步
1.1 什么是 Spring
1.2 初始化 Spring 应用
1.2.1 使用 Spring Tool Suite 初始化 Spring 项目
1.2.2 检查 Spring 项目的结构
1.3 编写 Spring 应用
1.3.1 处理 Web 请求
1.3.2 定义视图
1.3.3 测试控制器
1.3.4 构建和运行应用
1.3.5 了解 Spring Boot DevTools
1.3.6 回顾一下
1.4 俯瞰 Spring 风景线
1.4.1 Spring 核心框架
1.4.2 Spring Boot
1.4.3 Spring Data
1.4.4 Spring Security
1.4.5 Spring Integration 和 Spring Batch
1.4.6 Spring Cloud
1.5 小结
第 2 章 开发 Web 应用
2.1 展现信息
2.1.1 构建领域类
2.1.2 创建控制器类
2.1.3 设计视图
2.2 处理表单提交
2.3 校验表单输入
2.3.1 声明校验规则
2.3.2 在表单绑定的时候执行校验
2.3.3 展现校验错误
2.4 使用视图控制器
2.5 选择视图模板库
2.6 小结
第 3 章 使用数据
3.1 使用 JDBC 读取和写入数据
3.1.1 调整领域对象以适应持久化
3.1.2 使用 JdbcTemplate
3.1.3 定义模式和预加载数据
3.1.4 插入数据
3.2 使用 Spring Data JPA 持久化数据
3.2.1 添加 Spring Data JPA 到项目中
3.2.2 将领域对象标注为实体
3.2.3 声明 JPA repository
3.2.4 自定义 JPA repository
3.3 小结
第 4 章 保护 Spring
4.1 启用 Spring Security
4.2 配置 Spring Security
4.2.1 基于内存的用户存储
4.2.2 基于 JDBC 的用户存储
4.2.3 以 LDAP 作为后端的用户存储
4.2.4 自定义用户认证
4.3 保护 Web 请求
4.3.1 保护请求
4.3.2 创建自定义的登录页
4.3.3 退出
4.3.4 防止跨站请求伪造
4.4 了解用户是谁
4.5 小结
第 5 章 使用配置属性
5.1 细粒度的自动配置
5.1.1 理解 Spring 的环境抽象
5.1.2 配置数据源
5.1.3 配置嵌入式服务器
5.1.4 配置日志
5.1.5 使用特定的属性值
5.2 创建自己的配置属性
5.2.1 定义配置属性的持有者
5.2.2 声明配置属性元数据
5.3 使用 profile 进行配置
5.3.1 定义特定 profile 的属性
5.3.2 激活 profile
5.3.3 使用 profile 条件化地创建 bean
5.4 小结
第 2 部分 Spring 集成
第 6 章 创建 REST 服务
6.1 编写 RESTful 控制器
6.1.1 从服务器中检索数据
6.1.2 发送数据到服务器端
6.1.3 在服务器上更新数据
6.1.4 删除服务器上的数据
6.2 启用超媒体
6.2.1 添加超链接
6.2.2 创建资源装配器
6.2.3 命名嵌套式的关联关系
6.3 启用数据后端服务
6.3.1 调整资源路径和关系名称
6.3.2 分页和排序
6.3.3 添加自定义的端点
6.3.4 为 Spring Data 端点添加自定义的超链接
6.4 小结
第 7 章 消费 REST 服务
7.1 使用 RestTemplate 消费 REST 端点
7.1.1 GET 资源
7.1.2 PUT 资源
7.1.3 DELETE 资源
7.1.4 POST 资源
7.2 使用 Traverson 导航 REST API
7.3 小结
第 8 章 发送异步消息
8.1 使用 JMS 发送消息
8.1.1 搭建 JMS 环境
8.1.2 使用 JmsTemplate 发送消息
8.1.3 接收 JMS 消息
8.2 使用 RabbitMQ 和 AMQP
8.2.1 添加 RabbitMQ 到 Spring 中
8.2.2 通过 RabbitTemplate 发送消息
8.2.3 接收来自 RabbitMQ 的消息
8.3 使用 Kafka 的消息
8.3.1 为 Spring 搭建支持 Kafka 消息的环境
8.3.2 通过 KafkaTemplate 发送消息
8.3.3 编写 Kafka 监听器
8.4 小结
第 9 章 Spring 集成
9.1 声明一个简单的集成流
9.1.1 使用 XML 定义集成流
9.1.2 使用 Java 配置集成流
9.1.3 使用 Spring Integration 的 DSL 配置
9.2 Spring Integration 功能概览
9.2.1 消息通道
9.2.2 过滤器
9.2.3 转换器
9.2.4 路由器
9.2.5 切分器
9.2.6 服务激活器
9.2.7 网关
9.2.8 通道适配器
9.2.9 端点模块
9.3 创建 Email 集成流
9.4 小结
第 3 部分 反应式 Spring
第 10 章 理解反应式编程
10.1 反应式编程概览
10.2 初识 Reactor
10.2.1 绘制反应式流图
10.2.2 添加 Reactor 依赖
10.3 使用常见的反应式操作
10.3.1 创建反应式类型
10.3.2 组合反应式类型
10.3.3 转换和过滤反应式流
10.3.4 在反应式类型上执行逻辑操作
10.4 小结
第 11 章 开发反应式 API
11.1 使用 Spring WebFlux
11.1.1 Spring WebFlux 简介
11.1.2 编写反应式控制器
11.2 定义函数式请求处理器
11.3 测试反应式控制器
11.3.1 测试 GET 请求
11.3.2 测试 POST 请求
11.3.3 使用实时服务器进行测试
11.4 反应式消费 REST API
11.4.1 获取资源
11.4.2 发送资源
11.4.3 删除资源
11.4.4 处理错误
11.4.5 交换请求
11.5 保护反应式 Web API
11.5.1 配置反应式 Web 应用的安全性
11.5.2 配置反应式的用户详情服务
11.6 小结
第 12 章 反应式持久化数据
12.1 理解 Spring Data 的反应式概况
12.1.1 Spring Data 反应式本质论
12.1.2 反应式和非反应式类型之间的转换
12.1.3 开发反应式 repository
12.2 使用反应式的 Cassandra repository
12.2.1 启用 Spring Data Cassandra
12.2.2 理解 Cassandra 的数据模型
12.2.3 将领域对象映射为 Cassandra 持久化
12.2.4 编写反应式 Cassandra repository
12.3 编写反应式的 MongoDB repository
12.3.1 启用 Spring Data MongoDB
12.3.2 将领域对象映射为文档
12.3.3 编写反应式的 MongoDB repository 接口
12.4 小结
第 4 部分 云原生 Spring
第 13 章 注册和发现服务
13.1 思考微服务
13.2 搭建服务注册中心
13.2.1 配置 Eureka
13.2.2 扩展 Eureka
13.3 注册和发现服务
13.3.1 配置 Eureka 客户端属性
13.3.2 消费服务
13.4 小结
第 14 章 管理配置
14.1 共享配置
14.2 运行配置服务器
14.2.1 启用配置服务器
14.2.2 填充配置仓库
14.3 消费共享配置
14.4 提供特定应用和 profile 的属性
14.4.1 提供特定应用的属性
14.4.2 提供来自 profile 的属性
14.5 保持配置属性的私密性
14.5.1 在 Git 中加密属性
14.5.2 在 Vault 中存储私密信息
14.6 在运行时刷新配置属性
14.6.1 手动刷新配置属性
14.6.2 自动刷新配置属性
14.7 小结
第 15 章 处理失败和延迟
15.1 理解断路器模式
15.2 声明断路器
15.2.1 缓解延迟
15.2.2 管理断路器的阈值
15.3 监控失败
15.3.1 Hystrix Dashboard 简介
15.3.2 理解 Hystrix 的线程模型
15.4 聚合多个 Hystrix 流
15.5 小结
第 5 部分 部署 Spring
第 16 章 使用 Spring Boot Actuator
16.1 Actuator 概览
16.1.1 配置 Actuator 的基础路径
16.1.2 启用和禁用 Actuator 端点
16.2 消费 Actuator 端点
16.2.1 获取应用的基础信息
16.2.2 查看配置细节
16.2.3 查看应用的活动
16.2.4 获取应用的指标
16.3 自定义 Actuator
16.3.1 为“/info”端点提供信息
16.3.2 实现自定义的健康指示器
16.3.3 注册自定义的指标
16.3.4 创建自定义端点
16.4 保护 Actuator
16.5 小结
第 17 章 管理 Spring
17.1 使用 Spring Boot Admin
17.1.1 创建 Admin 服务器
17.1.2 注册 Admin 客户端
17.2 探索 Admin 服务器
17.2.1 查看应用基本的健康状况和信息
17.2.2 观察核心指标
17.2.3 探查环境属性
17.2.4 查看和设置日志级别
17.2.5 监控线程
17.2.6 跟踪 HTTP 请求
17.3 保护 Admin 服务器
17.3.1 为 Admin 服务器启用登录功能
17.3.2 为 Actuator 启用认证
17.4 小结
第 18 章 使用 JMX 监控 Spring
18.1 使用 Actuator MBean
18.2 创建自己的 MBean
18.3 发送通知
18.4 小结
第 19 章 部署 Spring
19.1 权衡各种部署方案
19.2 构建和部署 WAR 文件
19.3 推送 JAR 文件到 Cloud Foundry 上
19.4 在 Docker 容器中运行 Spring Boot
19.5 以终为始
19.6 小结
附录 初始化 Spring 应用
A.1 使用 Spring Tool Suite 初始化项目
A.2 使用 IntelliJ IDEA 初始化项目
A.3 使用 NetBeans 初始化项目
A.4 在 start.spring.io 中初始化项目
A.5 使用命令行初始化项目
A.5.1 curl 和 Initializr API
A.5.2 Spring Boot 命令行接口
A.6 使用元框架创建 Spring 应用
A.7 构建和运行项目
相关文章:
[202002][Spring 实战][第5版][张卫滨][译]
[202002][Spring 实战][第5版][张卫滨][译] habuma/spring-in-action-5-samples: Home for example code from Spring in Action 5. https://github.com/habuma/spring-in-action-5-samples 第 1 部分 Spring 基础 第 1 章 Spring 起步 1.1 什么是 Spring 1.2 初始化 Spr…...
H5视频上传与播放
背景 需求场景: 后台管理系统: (1)配置中支持上传视频、上传成功后封面缩略图展示,点击后自动播放视频; (2)配置中支持上传多个文件; 前台系统: &#…...
通过OpenAI来做机械智能故障诊断-测试(1)
通过OpenAI来做机械智能故障诊断 1. 注册使用2. 使用案例1-介绍故障诊断流程2.1 对话内容2.2 对话小结3. 使用案例2-写一段轴承故障诊断的代码3.1 对话内容3.2 对话小结4. 对话加载Paderborn轴承故障数据集并划分4.1 加载轴承故障数据集并划分第一次测试4.2 第二次加载数据集自…...
ASE40N50SH-ASEMI高压MOS管ASE40N50SH
编辑-Z ASE40N50SH在TO-247封装里的静态漏极源导通电阻(RDS(ON))为100mΩ,是一款N沟道高压MOS管。ASE40N50SH的最大脉冲正向电流ISM为160A,零栅极电压漏极电流(IDSS)为1uA,其工作时耐温度范围为-55~150摄氏度。ASE40N…...
MySQL基础命令大全——新手必看
Mysql 是一个流行的开源关系型数据库管理系统,广泛用于各种 Web 应用程序和服务器环境中。Mysql 有很多命令可以使用,以下是 Mysql 基础命令: 1、连接到Mysql服务器: mysql -h hostname -u username -p 其中,"ho…...
sklearn学习-朴素贝叶斯(二)
文章目录一、概率类模型的评估指标1、布里尔分数Brier Score对数似然函数Log Loss二、calibration_curve:校准可靠性曲线三、多项式朴素贝叶斯以及其变化四、伯努利朴素贝叶斯五、改进多项式朴素贝叶斯:补集朴素贝叶斯ComplementNB六、文本分类案例TF-ID…...
MySQL_主从复制读写分离
主从复制 概述 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制,从…...
shell基础学习
文章目录查看shell解释器写hello world多命令处理执行变量常用系统变量自定义变量撤销变量静态变量变量提升为全局环境变量特殊变量$n$#$* $$?运算符:条件判断比较流程控制语句ifcasefor 循环while 循环read读取控制台输入基本语法:函数系统函数basenamedirname自定义函数shel…...
考虑交叉耦合因素的IPMSM无传感器改进线性自抗扰控制策略
考虑交叉耦合因素的IPMSM无传感器改进线性自抗扰控制策略一级目录二级目录三级目录控制原理ELADRC信号提取龙格贝尔观测器方波注入simulink仿真给定转速:转速环:电流环:一级目录 二级目录 三级目录 首先声明一下,本篇博客是复现…...
2023年全国最新食品安全管理员精选真题及答案5
百分百题库提供食品安全管理员考试试题、食品安全员考试预测题、食品安全管理员考试真题、食品安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 41.《中华人民共和国食品安全法》第35条规定,以下࿰…...
git 笔记
简介 内容介绍 介绍git怎么管理和实现的 核心概念 文件名-hash-文件内容: 可以通过文件路径定位位置, 也可以通过hash定位位置;快照: 所谓一个快照其实就是一棵树, 叶子结点是一个hash,对应一个文件, 根节点对应文件夹; 一棵树就是一个快照;commit是tree, tree将文件串联, …...
ChatGPT 的盈利潜力:我使用语言模型赚取第一笔钱的个人旅程
使用 Fiverr、Python ChatGPT 和数据科学赚钱的指南。众所周知,ChatGPT 是 12 月发生的互联网突破性事件,几乎每个人都跳过了使用 AI 赚钱的潮流。在本文中,我将分享我是如何使用 ChatGPT 赚到第一笔钱的。本文包括以下主题:回到基…...
计算机网络——问答2023自用
1、高速缓冲存储器Cache的作用? 这种局部存储器介于CPU与主存储器DRAM之间,一般由高速SRAM构成,容量小但速度快,引入它是为了减小或消除CPU与内存之间的速度差异对系统性能带来的影响 (Cache可以保存CPU刚用过或循环使…...
【1247. 交换字符使得字符串相同】
来源:力扣(LeetCode) 描述: 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 "x" 和 "y",你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候&…...
【一天一门编程语言】Lisp 语言程序设计极简教程
Lisp 语言程序设计极简教程 Lisp 是一种古老的编程语言,它的特点是拥有很高的表示能力和灵活的可扩展性,拥有大量的现成函数库,同时也是一种动态类型的语言,十分适合用来实现大规模软件系统。本文介绍了 Lisp 程序设计的基本知识,帮助读者快速上手。 一、Lisp 简介 Lis…...
全后端交互数据加密
前后端交互 通信请求使用https对请求参数进行签名,防止数据篡改对请求参数以及响应数据进行加解密app中使用ssl pinning防止抓包操作 https协议 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-78n9M2PH-1677252127361)(安全.assets/ht…...
稀疏特征和密集特征
在机器学习中,特征是指对象、人或现象的可测量和可量化的属性或特征。特征可以大致分为两类:稀疏特征和密集特征。 稀疏特征 稀疏特征是那些在数据集中不连续出现的特征,并且大多数值为零。稀疏特征的示例包括文本文档中特定单词的存在或不存…...
Linux网络TCP sticky分析工具
1 TCP粘包 - TCP_NODELAY TCP粘包(sticky)的表现是TCP nagle算法将应用层发送的多个包进行合并后,再发送,很容易出现burst导致bcm89230丢包。由于OABR不支持流控,所以需要使用Linux tc对对应的TCP port进行流量整形。 …...
华为OD机试题,用 Java 解【DNA 序列】问题
最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…...
python的所有知识点+代码+注释,不看就亏死了
目录 简介 特点 搭建开发环境 版本 hello world 注释 文件类型 变量 常量 数据类型 运算符和表达式 控制语句 数组相关 函数相关 字符串相关 文件处理 对象和类,注:不是那个对象!!!!&…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
