当前位置:   article > 正文

20210401#《Spring in action 5》_spring in action 第五版 中文

spring in action 第五版 中文

目录

概述

代码地址: https://gitee.com/syctems/spring-in-action-5-samples

第1部分 Spring基础

第1章 Spring起步

  • Spring
  • Spring Boot
  • 微服务和反应式编程(microservices and reactive programming)

1.1 什么是Spring

  • @Configuration
  • @Bean
  • xml 和 JavaConfig
<bean id="inventoryService" class="com.example.InventoryService" />

<bean id="productService" class="com.example.ProductService" />
	<constructor-arg ref="inventoryService" />
</bean>
  • 1
  • 2
  • 3
  • 4
  • 5
@Configuration
public class ServiceConfiguration {
	@Bean
	public InventoryService inventoryService() {
		return new InventoryService();
	}
	@Bean
	public ProductService productService() {
		return new ProductService(inventoryService());
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 显示装配和自动配置
  • 自动配置: 自动装配(autowiring)和组件扫描(component scaning)
    • 借助 组件扫描技术,Spring能够自动发现应用类路径下的组件,并将它们创建成Spring应用上下午中的bean
    • 借助自动装配技术,Spring能够自动为组件注入它们所依赖的其他bean
  • Spring Boot 的autoconfiguration

1.2 初始化Spring应用

  • 初始化应用 Spring Initializr
  • 国内脚手架:https://start.aliyun.com/

1.4 俯瞰Spring风景线

  • 1.4.2 Spring Boot
    • starter依赖
    • 自动配置

2.1.2 创建控制器类

package tacos.web;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import lombok.extern.slf4j.Slf4j;
import tacos.Taco;
import tacos.Ingredient;
import tacos.Ingredient.Type;
@Slf4j
@Controller
@RequestMapping("/design")
public class DesignTacoController {
	@GetMapping
	public String showDesignForm(Model model) {
	List<Ingredient> ingredients = Arrays.asList(
		new Ingredient("FLTO", "Flour Tortilla", Type.WRAP),
		new Ingredient("COTO", "Corn Tortilla", Type.WRAP),
		new Ingredient("GRBF", "Ground Beef", Type.PROTEIN),
		new Ingredient("CARN", "Carnitas", Type.PROTEIN),
		new Ingredient("TMTO", "Diced Tomatoes", Type.VEGGIES),
		new Ingredient("LETC", "Lettuce", Type.VEGGIES),
		new Ingredient("CHED", "Cheddar", Type.CHEESE),
		new Ingredient("JACK", "Monterrey Jack", Type.CHEESE),
		new Ingredient("SLSA", "Salsa", Type.SAUCE),
		new Ingredient("SRCR", "Sour Cream", Type.SAUCE)
	);
	Type[] types = Ingredient.Type.values();
	for (Type type : types) {
		model.addAttribute(type.toString().toLowerCase(),
		filterByType(ingredients, type));
	}
	model.addAttribute("design", new Taco());
		return "design";
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

2.1.3 设计视图

2.2 处理表单提交

2.3 校验表单输入

2.3.1 声明校验规则

2.3.2 在表单绑定的时候执行校验

2.3.3 展现校验错误

2.4 使用试图控制器

  • @Controller,表明是一个控制器类,并且应该被Spring的组件扫描功能自动发现并初始化为Spring应用上下文中的bean
  • @RequestMapping , 定义该控制器所处理的基本请求模式
  • @GetMapping 或 @PostMapping , 指明了该由哪个方法来处理某种类型的请求。

2.6 小结

第3章 使用数据

本章内容

  • 使用Spring的JdbcTemplate
  • 使用SimpleJdbcInsert插入数据
  • 使用Spring Data 生命JPA repository

3.1 使用JDBC读取和写入数据

3.1.1 调整领域对象以适应持久化

3.1.2 使用JdbcTemplate

3.1.3 定义模式和预加载数据

3.1.4 插入数据

  • @SessionAttributes(“order”)

3.2 使用Spring Data JPA持久化数据

  • Spring Data JPA : 基于关系型数据库进行JPA持久化
  • Spring Data MongoDB: 持久化到Mongo文档数据库
  • Spring Data Neo4j: 持久化到Neo4j图数据库
  • Spring Data Redis: 持久化到Redis key-value存储
  • Spring Data Cassandra: 持久化到 Cassandra 数据库。

3.2.1 添加Spring Data JPA到项目中

3.2.2 将领域对象标注为实体

3.2.3 声明JPA repository

3.2.4 自定义JPA repository

3.3 小结

  • Spring的JdbcTemplate能够极大地简化JDBC的使用。
  • 在我们需要知道数据库所生成的ID值时,可以组合使用PreparedStatementCreator和KeyHolder。
  • 为了简化数据的插入,可以使用SimpleJdbcInsert。
  • Spring Data JPA 能够极大地简化JPA持久化,我们只需要编写repository接口即可。

第4章 保护Spring

本章内容:

  • 自动配置Spring Security
  • 设置自定义地用户存储
  • 自定义登录页
  • 防范CSRF攻击
  • 知道用户是谁

4.1 启用Spring Security

4.2 配置Spring Security

  • 基于内存的用户存储
  • 基于JDBC的用户存储
  • 以LDAP作为后端的用户存储
  • 自定义用户详情服务

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.2 创建自己的配置属性

5.3 使用profile进行配置

5.4 小结

第2部分 Spring集成

第6章 创建REST服务

6.1 创建RESTful控制器

6.1.1 从服务器中检索数据

6.1.2 发送数据到服务器端

6.1.3 在服务器上更新数据

6.1.4 删除服务器上的数据

6.2 启用超媒体

6.3 启用数据后端服务

6.4 小结

第7章 消费REST服务

第8章 发送异步消息

本章内容

  • 异步化的消息
  • 使用JMS、RabbitMQ和Kafka发送消息
  • 从代理拉取消息
  • 监听消息

3中异步消息方案

  • java消息服务(Java Message Service, JMS)
  • RabbitMQ 和高级消息队列协议(Advanced Message Queueing Protocol)
  • Apache Kafka

第9章 Spring集成

第3部分 反应式Spring

第10章 理解反应式编程

第11章 开发反应式API

第12章 反应式持久化数据

第4部分 云原生Spring

第13章 注册和发现服务

第14章 管理配置

第15章 处理失败和延迟

第5部分

第16章 使用Spring Boot Actuator

第17章 管理Spring

第18章 使用JMX监控Spring

第19章 部署Spring

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/154990
推荐阅读
相关标签
  

闽ICP备14008679号