Spring Data 3 中的新 CRUD Repository 接口
1、概览 {#1概览} ----------- 本文将带你了解 Spring Data 3 中引入的新 `Repository` 接口。 Spring Data 3 引入了基于 `List` 的 CRUD `Repository` 接口,可用于替换返回 `Iterable` 的现有 CRUD `Repository` 接口。此外,分页和排序接口默认不继承原始 CRUD `R...
1、概览 {#1概览} ----------- 本文将带你了解 Spring Data 3 中引入的新 `Repository` 接口。 Spring Data 3 引入了基于 `List` 的 CRUD `Repository` 接口,可用于替换返回 `Iterable` 的现有 CRUD `Repository` 接口。此外,分页和排序接口默认不继承原始 CRUD `R...
1、简介 {#1简介} ----------- Java Persistence API(JPA)是连接 Java 对象和关系数据库的桥梁,允许我们无缝地持久化和检索数据。本文将会带你了解各种策略和技术,以便在 JPA 中进行保存操作后有效地刷新(Refresh)和获取(Fetch)实体。 2、了解 Spring Data JPA 中的实体管理 {#2了解-spring-d...
1、简介 {#1简介} ----------- Servlet Filter(过滤器)为拦截和处理传入的请求提供了强大的机制。 本文将会带你了解在 Servlet Filter 中无缝获取 Spring Bean 的各种方法,这种需求在 Spring Web 应用中很常见。 2、Servlet Filter 中 @Autowired 的限制 {#2servlet-filt...
1、概览 {#1概览} ----------- 本文将带你了解如何在 [Spring Security](/spring-security/) 中配置 Session 超时、Session 并发以及其他高级的 Session 安全设置。 2、何时创建 Session? {#2何时创建-session} -------------------------------- 可以...
1、概览 {#1概览} ----------- 本文将带你了解如何在 Spring Security 中设置 `Authentication` Provider,相比于使用简单的 `UserDetailsService` 的标准方案,这样可以提供额外的灵活性。 2、Authentication Provider {#2authentication-provider} ---...
1、概览 {#1概览} ----------- 本文将带你了解如何通过 [Spring Security](/spring-security/) 提供的 *Basic Authentication* 机制来保护 MVC 应用。 2、Spring Security 配置 {#2spring-security-配置} ------------------------------...
1、概览 {#1概览} ----------- [Spring JPA](/spring-data-jpa/) 为与数据库交互提供了非常灵活方便的 API。而且,还可以对其进行定制,以返回其他数据结构类型的返回值。 使用 `Map` 作为 JPA Repository 方法的返回类型有助于在服务和数据库之间创建更直接的交互。本文将带你了解如何在 Spring Data JP...
1、概览 {#1概览} ----------- 虽然 *JSON* 是 RESTful 服务的事实标准,但在某些情况下,可能需要使用 *XML*。例如:老掉牙的银行 API 就是通过 XML 进行交互的。 Spring 通过 Jackson XML 提供了一种简单的方法来支持 XML 端点。 2、依赖 {#2依赖} ----------- 第一步是添加 [依赖](htt...
概览 {#概览} -------- 本文将带你了解各种 [Spring](/spring/) 事务的最佳实践,以保证底层业务的数据完整性。 数据完整性至关重要。如果没有适当的事务处理,应用就很容易出现竞赛条件,从而给底层业务带来可怕的后果。 模拟竞赛条件 {#模拟竞赛条件} ---------------- 以一个实际问题为例,说明在构建基于 Spring 的应用时,应...
1、概览 {#1概览} ----------- `JpaRepository` 供了 CRUD 操作的基本方法。其中 `getReferenceById(ID)` 和 `findById(ID)` 是经常引起混淆的方法。这些方法是 `getOne(ID)`、`findOne(ID)` 和 `getById(ID)` 的新 API 名称。 本文将带你了解这些方法之间的区别,以...