诺森图书音像专营店
  • 扫码下单

  • 音像SpringDataJPA:入门、实战与进阶张振华 著
  • 正版
    • 作者: 张振华 著著 | 张振华 著编 | 张振华 著译 | 张振华 著绘
    • 出版社: 机械工业出版社
    • 出版时间:2021-10-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    店铺装修中

    商家:
    诺森图书音像专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    诺森图书音像专营店

  • 商品参数
    • 作者: 张振华 著著| 张振华 著编| 张振华 著译| 张振华 著绘
    • 出版社:机械工业出版社
    • 出版时间:2021-10-01
    • 页数:528
    • 开本:16开
    • ISBN:9787111692201
    • 版权提供:机械工业出版社
    • 作者:张振华 著
    • 著:张振华 著
    • 装帧:平装
    • 印次:暂无
    • 定价:129.00
    • ISBN:9787111692201
    • 出版社:机械工业出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2021-10-01
    • 页数:528
    • 外部编号:31295691
    • 版次:暂无
    • 成品尺寸:暂无

    前 言<br/>部 基础知识<br/>章 初识Spring Data JPA 2<br/>1.1 Spring Boot和JPA演示 2<br/>1.2 JPA如何整合MySL数据库 8<br/>1.2.1 切换MySL数据源 8<br/>1.2.2 Spring Data JPA测试用例的写法 10<br/>1.3 整体认识JPA 11<br/>1.3.1 市场上ORM框架的对比 11<br/>1.3.2 JPA简介和开源实现 12<br/>1.4 认识Spring Data 13<br/>1.4.1 Spring Data简介 13<br/>1.4.2 Spring Data的子项目 14<br/>1.5 本章小结 15<br/>第2章 全面掌握Spring Data Commons之Repository 16<br/>2.1 Spring Data Commons的依赖关系 16<br/>2.2 Repository接口 17<br/>2.2.1 查看Repository源码 17<br/>2.2.2 Repository类层次关系 17<br/>2.. Repository接口的实际案例 19<br/>. CrudRepository接口 21<br/>2.4 PagingAndSortingRepository接口 <br/>2.4.1 PagingAndSortingRepository的源码 <br/>2.4.2 PagingAndSortingRepository的使用案例 24<br/>2.5 JpaRepository接口 25<br/>2.6 Repository的实现类SimpleJpaRepository 26<br/>2.7 Repository接口的启发 27<br/>2.8 本章小结 28<br/>第3章 定义查询方法的命名语法与参数 29<br/>3.1 定义查询方法的配置和使用方法 29<br/>3.1.1 直接通过方法名实现CRUD步骤 30<br/>3.1.2 选择暴露CRUD方法 30<br/>3.2 方法的查询策略设置 31<br/>3.3 定义查询方法的语法 32<br/>3.3.1 语法剖析 32<br/>3.3.2 关键源码 34<br/>3.4 特定类型的参数:Sort和Pageable 36<br/>3.5 限制查询结果:First和Top 38<br/>3.6 @NonNull、@NonNullApi和@Nullable关键字 38<br/>3.7 给我们的一些思考 39<br/>3.8 本章小结 43<br/>第4章 利用Repository中的方法返回值来解决实际问题 44<br/>4.1 Repository的返回结果 44<br/>4.1.1 自定义Streamable 46<br/>4.1.2 返回结果类型List/Stream/Page/Slice 46<br/>4.1.3 Repository对Feature/CompletableFuture异步返回结果的支持 52<br/>4.1.4 对Reactive的支持:Flux与Mono 53<br/>4.1.5 小结 53<br/>4.2 常见的DTO返回结果的支持方法 56<br/>4.2.1 Projections概念 56<br/>4.2.2 种方法:新建一张表的不同Entity 57<br/>4.. 第二种方法:直接定义一个UserOnlyNameEmailDto 58<br/>4.2.4 第三种方法:返回结果是一个POJO的接口 60<br/>4.2.5 写查询方法的一个小技巧 62<br/>4.3 本章小结 62<br/>第5章 @ery语法详解及其应用 63<br/>5.1 快速体验@ery的方法 63<br/>5.2 JpaeryLookupStrategy关键源码剖析 64<br/>5.3 @ery的基本用法 66<br/>5.3.1 JPL的语法 67<br/>5.3.2 @ery的用法案例 68<br/>5.3.3 @ery的排序 68<br/>5.3.4 @ery的分页 69<br/>5.3.5 @Param的用法 70<br/>5.4 @ery之Projections应用返回指定DTO 70<br/>5.4.1 利用UserDto类 72<br/>5.4.2 利用UserDto接口 73<br/>5.5 @ery动态查询解决方法 74<br/>5.6 本章小结 77<br/>第6章 @Entity的常用注解及Java多态场景应用 78<br/>6.1 JPA协议中关于实体的相关规定 78<br/>6.2 实体里面常见的注解 79<br/>6.3 生成注解的小技巧 85<br/>6.4 联合主键 86<br/>6.4.1 如何通过@IdClass实现联合主键 86<br/>6.4.2 @Embeddable与@EmbeddedId注解的使用 88<br/>6.5 如何实现实体之间的继承关系 89<br/>6.5.1 @Inheritance(strategy?=?InheritanceType.SINGLE_TABLE) 90<br/>6.5.2 @Inheritance(strategy?=?InheritanceType.JONE) 91<br/>6.5.3 @Inheritance(strategy?=?InheritanceType.TABLE_PER_CLASS) 93<br/>6.5.4 关于继承关系的经验之谈 94<br/>6.6 本章小结 95<br/>第7章 实体之间关联关系注解的正确使用 96<br/>7.1 @OneToOne 96<br/>7.1.1 @OneToOne的源码解读 98<br/>7.1.2 mappedBy的注意事项 99<br/>7.1.3 CascadeType的用法 99<br/>7.1.4 orphanRemoval的属法 100<br/>7.1.5 主键和外键都是同一个字段 101<br/>7.1.6 @OneToOne延迟加载下只需要值 102<br/>7.1.7 @OneToOne的实践 104<br/>7.2 @JoinCloumns和@JoinColumn 105<br/>7.3 @ManyToOne和@OneToMany 106<br/>7.4 @ManyToMany 110<br/>7.4.1 利用@ManyToOne和@OneToMany表达多对多的关联关系 112<br/>7.4.2 @ManyToMany的实践 114<br/>7.5 本章小结 114<br/>第8章 Jackson在实体里面的注解详解 115<br/>8.1 Jackson的基本语法 115<br/>8.1.1 三个核心模块 116<br/>8.1.2 Jackson提供的扩展jar包 116<br/>8.1.3 Jackson中常用的一些注解 117<br/>8.1.4 实例 118<br/>8.2 Jackson和Spring的关系 121<br/>8.2.1 应用场景一:Spring MVC的View层 121<br/>8.2.2 应用场景二:Open-Feign 121<br/>8.. 应用场景三:Redis里面 122<br/>8.2.4 应用场景四:JMS消息序列化 122<br/>8.3 Jackson的原理分析 1<br/>8.3.1 Jackson的可见原理分析 1<br/>8.3.2 反序列化重要的方法 124<br/>8.3.3 Module的加载机制 126<br/>8.4 Jackson与JPA常见的问题 127<br/>8.4.1 如何解决死循环问题 127<br/>8.4.2 JPA实体JSON序列化的常见报错及解决方法 128<br/>8.4.3 的配置项 129<br/>8.4.4 JSON序列化和Java序列化 131<br/>8.5 本章小结 131<br/>第二部分 高阶用法与实例<br/>第9章 eryByExampleExecutor的用法和原理分析 135<br/>9.1 eryByExampleExecutor的用法 135<br/>9.1.1 基本方法 135<br/>9.1.2 使用案例 136<br/>9.2 eryByExampleExecutor的语法 140<br/>9.2.1 Example的语法详解 140<br/>9.2.2 ExampleMatcher方法概述 141<br/>9.. 初始化ExampleMatcher实例的方法 142<br/>9.2.4 ExampleMatcher的语法 143<br/>9.2.5 ExampleMatcher的完整例子 145<br/>9.2.6 使用eryByExampleExecutor时需要考虑的因素 146<br/>9.3 eryByExampleExecutor的实现原理 146<br/>9.3.1 eryByExampleExecutor的源码分析 146<br/>9.3.2 JpaSpecificationExecutor的接口结构 148<br/>9.3.3 通过BE反向思考JpaSpecificationExecutor 149<br/>9.4 本章小结 149<br/>0章 JpaSpecificationExecutor的实现原理 150<br/>10.1 JpaSpecificationExecutor的使用案例 150<br/>10.2 JpaSpecificationExecutor的语法详解 154<br/>?10.2.1 Root<User> root 156<br/>?10.2.2 Criteriaery<?> query 156<br/>?10.. CriteriaBuilder 157<br/>10.3 JpaSpecificationExecutor的原理分析 158<br/>10.4 JpaSpecificationExecutor实战 160<br/>?10.4.1 自定义MySpecification 161<br/>?10.4.2 利用Specification创建以search为查询条件的RESTful API 163<br/>10.5 本章小结 165<br/>1章 erydsl在JPA中的应用 166<br/>11.1 erydsl快速入门 166<br/>11.2 erydsl的语法 170<br/>?11.2.1 erydslPredicateExecutor 170<br/>?11.2.2 erydslBinderCustomizer 172<br/>?11.. 类型安全的应用 174<br/>11.3 erydsl对WebMVC的支持<br/> 及源码分析 175<br/>?11.3.1 @erydslPredicate注解 175<br/>?11.3.2 erydslPredicateArgument-<br/> Resolver源码分析 177<br/>11.4 本章小结 179<br/>2章 如何自定义Repository 180<br/>12.1 EntityManager简介 180<br/>?12.1.1 EntityManager的常用方法 180<br/>?12.1.2 EntityManager的使用 182<br/>12.2 @EnableJpaRepositories详解 183<br/>?12.2.1 @EnableJpaRepositories的语法 183<br/>?12.2.2 @EnableJpaRepositories的默认加载方式 185<br/>1. 自定义Repository的实现类的方法 186<br/>?1..1 种方法:定义独立的Repository的Impl实现类 186<br/>?1..2 种方法的原理分析 187<br/>?1.. 第二种方法:通过@EnableJpaRepositories定义默认的实现类 190<br/>?1..4 第二种方法的原理分析 192<br/>12.4 实际应用场景 193<br/>12.5 本章小结 193<br/>3章 JPA的Auditing功能 194<br/>13.1 Auditing是什么 194<br/>13.2 如何实现Auditing 195<br/>?13.2.1 种方式:直接在实例里面添加上述四个注解 195<br/>?13.2.2 第二种方式:在实体里面实现Auditable接口 198<br/>?13.. 第三种方式:利用@MappedSuperclass注解 200<br/>13.3 JPA的Auditing功能解决了哪些问题 201<br/>13.4 Auditing的实现原理 202<br/>?13.4.1 Auditing的源码分析 202<br/>?13.4.2 结论 204<br/>13.5 本章小结 205<br/>4章 @Entity回调方法的正确使用 206<br/>14.1 Java Persistence API规定的回调方法 206<br/>?14.1.1 Entity的回调事件注解 206<br/>?14.1.2 语法注意事项 207<br/>14.2 JPA回调注解的使用方法 207<br/>?14.2.1 种用法:在实体和super-class中使用 207<br/>?14.2.2 第二种用法:自定义EntityListener 212<br/>?14.. 关于@EntityListeners加载顺序的说明 214<br/>14.3 JPA回调注解的实践 214<br/>14.4 JPA回调注解的实现原理和事件机制 216<br/>14.5 本章小结 217<br/>5章 乐观锁机制和重试机制在实战中的应用 218<br/>15.1 什么是乐观锁 218<br/>15.2 乐观锁的实现方法 218<br/>?15.2.1 @Version的用法 219<br/>?15.2.2 @Version对Save方法的影响 222<br/>15.3 isNew判断的逻辑 222<br/>15.4 乐观锁机制和重试机制的实战 224<br/>?15.4.1 重试机制详解 224<br/>?15.4.2 @Retryable的详细用法 225<br/>?15.4.3 乐观锁+重试机制的实践 227<br/>15.5 悲观锁的实现 227<br/>15.6 本章小结 228<br/>6章 JPA对Web MVC开发的支持 229<br/>16.1 DomainClassConverter组件 0<br/>?16.1.1 一个实例 0<br/>?16.1.2 源码分析 1<br/>16.2 Page和Sort的参数支持 <br/>?16.2.1 一个实例 <br/>?16.2.2 原理分析 5<br/>16.3 Web MVC的参数绑定 <br/>?16.3.1 一个实例 <br/>?16.3.2 原理分析 <br/>16.4 erydsl的Web MVC支持 <br/>?16.4.1 一个实例 ≈lt;br/>?16.4.2 原理分析 241<br/>16.5 @DynamicUpdate和<br/> @DynamicInsert详解 242<br/>?16.5.1 通过语法快速了解 242<br/>?16.5.2 使用案例 243<br/>?16.5.3 只更新非Null的字段 246<br/>?16.5.4 @DynamicUpdate与@LastModifiedDate一起使用 248<br/>16.6 Spring Data对系统监控的支持 248<br/>16.7 本章小结 249<br/>7章 自定义HandlerMetho-AguentResolver 250<br/>17.1 Page和Sort参数 250<br/>17.2 HandlerMethoAguentResolver的用法 252<br/>?17.2.1 HandlerMethoAguent-Resolver详解 252<br/>?17.2.2 与HttpMessageConverter的关系 254<br/>?17.. HttpMessageConverter的执行顺序 254<br/>17.3 HandlerMethoAguentResolver实战 255<br/>?17.3.1 自定义HandlerMetho-AguentResolver 256<br/>?17.3.2 实际工作中的四种常见场景 259<br/>17.4 思路拓展 261<br/>?17.4.1 WebMvcConfigurer介绍 261<br/>?17.4.2 对JSON的返回结果进行统一封装 262<br/>17.5 本章小结 264<br/>8章 DataSource详解及其加载过程 265<br/>18.1 数据源是什么 265<br/>?18.1.1 DataSource源码分析 266<br/>?18.1.2 数据源、驱动、连接和连接池的关系 268<br/>18.2 数据源的加载原理和过程 269<br/>?18.2.1 DataSourceAutoConfiguration数据源的加载过程分析 269<br/>?18.2.2 Hikari数据源下的MySL配置实践 274<br/>?18.. Hikari数据通过Prometheus的监控指标应用 276<br/>18.3 AliDruidDataSource的配置与介绍 278<br/>18.4 命名策略详解及其实践 279<br/>?18.4.1 Hibernate 5的命名策略 279<br/>?18.4.2 加载原理与自定义方法 282<br/>?18.4.3 实际应用场景 283<br/>18.5 数据库的时区问题 283<br/>?18.5.1 MySL时间类型字段和时区的关系 283<br/>?18.5.2 MySL驱动处理时区的原理 285<br/>18.6 本章小结 286<br/>9章 生产环境多数据源的处理方法 287<br/>19.1 种方式:@Configuration配置方法 287<br/>?19.1.1 通过多个@Configuration的配置方法 287<br/>?19.1.2 DataSource与Transaction-Manager、EntityManager-Factory的关系分析 294<br/>?19.1.3 默认的JpaBaseConfiguration的加载方式分析 294<br/>19.2 第二种方式:利用Abstract-RoutingDataSource配置 295<br/>?19.2.1 利用AbstractRoutingData-Source的配置方法 296<br/>?19.2.2 微服务下多数据源的思考 299<br/>?19.. 微服务下的实战建议 300<br/>19.3 本章小结 300<br/>第20章 事务、连接池之间的关系与配置 301<br/>20.1 事务的基本原理 301<br/>?20.1.1 四种MySL事务的隔离级别 302<br/>?20.1.2 MySL中事务与连接的关系 303<br/>20.2 Spring事务的配置方法 304<br/>?20.2.1 默认@Transactional注解式事务 305<br/>?20.2.2 @Transactional的局限 307<br/>?20.. TransactionTemplate的用法 308<br/>?20.2.4 自定义TransactionHelper 310<br/>?20.2.5 AspectJ事务配置 310<br/>?20.2.6 通过日志分析配置方法的过程 311<br/>20.3 Spring事务的实现原理 313<br/>?20.3.1 Spring事务源码分析 313<br/>?20.3.2 事务和连接池在JPA中的注意事项 318<br/>20.4 本章小结 318<br/>第三部分 原理在实战中的应用<br/>2章 JPA中的Hibernate加载过程与配置项 320<br/>21.1 Hibernate架构分析 320<br/>21.2 Hibernate 5在Spring Boot 2中的加载过程 321<br/>?21.2.1 JpaProperties属 322<br/>?21.2.2 HibernateJpaConfiguration分析 3<br/>?21.. 自动加载过程类之间的关系 328<br/>21.3 Repositories的加载模式 329<br/>21.4 在调试时需要的日志配置 331<br/>21.5 本章小结 333<br/>第22章 理解Persistence Context的核心概念 334<br/>22.1 Persistence Context相关核心概念 334<br/>?22.1.1 EntityManagerFactory和Persistence Unit 334<br/>?22.1.2 EntityManager和PersistenceContext 335<br/>22.2 实体对象的生命周期 337<br/>?22.2.1 种:New状态 337<br/>?22.2.2 第二种:Detached状态 338<br/>?22.. 第三种:Managed状态 339<br/>?22.2.4 第四种:Removed状态 339<br/>2. 解密EntityManager的f?lush()方法 340<br/>?2..1 Flush的作用 340<br/>?2..2 Flush机制 341<br/>?2.. Flush会改变SL的执行顺序 342<br/>?2..4 Flush与事务提交的关系 343<br/>?2..5 Flush与乐观锁的关系 344<br/>?2.. saveAndFlush和save的区别 345<br/>22.4 Dirty判断逻辑及其作用 346<br/>?22.4.1 Dirty效果的例子 346<br/>?22.4.2 Entity判断Dirty的过程 346<br/>22.5 本章小结 347<br/>第章 Session的open-in-view对事务的影响 348<br/>.1 Session是什么 348<br/>?.1.1 对Session的理解 348<br/>?.1.2 SessionImpl解决了什么问题 349<br/>.2 open-in-view是做什么的 350<br/>?.2.1 open-in-view的作用 350<br/>?.2.2 OpenEntityManagerInView-Interceptor源码分析 351<br/>?.. EntityManager的开启时机及扩展场景 353<br/>?.2.4 验EntityManager创建和释放的日志 354<br/>. hibernate.connection.handling_mode详解 356<br/>?..1 PhysicalConnectionHandling-Mode的五种模式 356<br/>?..2 默认模式及其修改 358<br/>?..3 handling_mode的配置对连接的影响 359<br/>.4 Session、EntityManager、Connection和Transaction之间的关系 361<br/>?.4.1 Connection和Transaction 361<br/>?.4.2 EntityManager、Connection和Transaction 362<br/>?.4.3 Session、EntityManager、Connection和Transaction 362<br/>?.4.4 Session和Transaction 362<br/>.5 本章小结 362<br/>第24章 如何在CompletableFuture异步线程中正确使用JPA 363<br/>24.1 CompletableFuture的实际使用案例 363<br/>?24.1.1 CompletableFuture的常见写法 363<br/>?24.1.2 案例中表现出来的问题现状 364<br/>24.2 异步方法步骤拆解 365<br/>?24.2.1 CompletableFuture实践 365<br/>?24.2.2 通过日志查看事务的执行过程 367<br/>?24.. 异步事务的正确使用方法 369<br/>?24.2.4 Session机制与Repository.save(entity)的关系 372<br/>24.3 异步场景下的思考 374<br/>24.4 本章小结 375<br/>第25章 为什么总会遇到LAZY异常 376<br/>25.1 什么是LazyInitialization-Exception 376<br/>25.2 LAZY加载机制的原理分析 378<br/>?25.2.1 PersistentCollection集合类 378<br/>?25.2.2 以PersistentBag为例详解原理 379<br/>25.3 LAZY异常的常见场景与解决方法 382<br/>?25.3.1 场景一:跨事务或事务之外 382<br/>?25.3.2 场景二:异步线程 384<br/>?25.3.3 场景三:Controller直接返回实体 384<br/>?25.3.4 场景四:自定义的和Filter中无意的toString操作 385<br/>25.4 hibernate.enable_lazy_load_no_trans配置 386<br/>25.5 Javax.persistence.Persistence-Exception异常类型 386<br/>25.6 本章小结 387<br/>第26章 如何正确解决经典的“N+1”SL问题 388<br/>26.1 什么是“N+1”SL问题 388<br/>26.2 减少N对应的SL语句的条数 393<br/>?26.2.1 hibernate.default_batch_fetch_size配置 393<br/>?26.2.2 @BatchSize注解 395<br/>26.3 Hibernate中获取数据的策略 399<br/>?26.3.1 FetchMode.SELECT 399<br/>?26.3.2 FetchMode.JOIN 401<br/>?26.3.3 FetchMode.SUBSELECT 403<br/>26.4 转变解决问题的思路 405<br/>26.5 @NamedEntityGraph和@EntityGraph使用详解 406<br/>?26.5.1 @NamedEntityGraph和@EntityGraph的用法 407<br/>?26.5.2 @NamedEntityGraph和@EntityGraph使用实例 409<br/>26.6 本章小结 412<br/>第27章 SpEL在Spring中的使用方法 413<br/>27.1 SpEL基础 413<br/>?27.1.1 SpEL的主要语法 413<br/>?27.1.2 SpEL的基本用法 415<br/>27.2 SpEL在Spring中的常见使用场景 416<br/>?27.2.1 @Value中的应用场景 416<br/>?27.2.2 @ery中的应用场景 422<br/>?27..  @Cacheable中的应用场景 425<br/>27.3 本章小结 427<br/>第28章 eryPlanCache详解 428<br/>28.1 一级缓存 428<br/>?28.1.1 什么是一级缓存 428<br/>?28.1.2 一级缓存的作用 429<br/>28.2 eryPlanCache 432<br/>?28.2.1 eryPlanCache是什么 432<br/>?28.2.2 eryPlanCache存储的内容 433<br/>?28.. eryPlanCache和Session的关系 436<br/>28.3 eryPlanCache中In查询条件引发的内存泄漏问题 438<br/>?28.3.1 In查询条件引发内存泄漏的原因 438<br/>?28.3.2 解决In查询条件内存泄漏的方法 440<br/>28.4 本章小结 441<br/>第四部分 思路扩展<br/>第29章 二级缓存的思考:Redis与JPA如何结合 444<br/>29.1 二级缓存的概念 444<br/>?29.1.1 Hibernate中二级缓存的配置方法 444<br/>?29.1.2 二级缓存的思考 445<br/>29.2 利用Redis进行缓存 446<br/>?29.2.1 Spring Cache和Redis的结合 446<br/>?29.2.2 介绍Spring Cache 447<br/>?29.. Spring Cache的主要注解 447<br/>?29.2.4 Spring Cache Redis的主要类 449<br/>29.3 Spring Cache结合Redis的实践 451<br/>?29.3.1 不同Cache name配置不同的过期时间 451<br/>?29.3.2 自定义Redis key的拼接规则 453<br/>?29.3.3 异常时不要阻碍主流程 454<br/>?29.3.4 改变默认的Cache中Redis的value序列化方式 455<br/>29.4 本章小结 457<br/>第30章 Spring Data Rest与JPA 458<br/>30.1 Spring Data Rest Demo 458<br/>30.2 Spring Data Rest的基本用法 461<br/>?30.2.1 语义化的方法 461<br/>?30.2.2 默认的状态码支持 462<br/>?30.. 分页支持 462<br/>?30.2.4 通过@RepositoryRest-Resource改变资源的metaData 462<br/>?30.2.5 利用@RestResource改变RESTful的SearchPath 464<br/>?30.2.6 Spring Data Rest的配置项支持 465<br/>30.3 返回结果对Jackson的支持 466<br/>30.4 Spring Data Rest和Spring Data JPA的关系 467<br/>30.5 本章小结 467<br/>3章 如何利用单元测试和集成测试让开发效率翻倍 468<br/>31.1 Spring Data JPA单元测试的实践 46<br/>?31.1.1 Spring Data JPA Repository的测试用例 468<br/>?31.1.2 Repository的测试场景 470<br/>31.2 什么是单元测试 473<br/>?31.2.1 Service层单元测试 473<br/>?31.2.2 Controller层单元测试 475<br/>31.3 什么是集成测试 477<br/>?31.3.1 Service层的集成测试用例写法 477<br/>?31.3.2 Controller层的集成测试用例写法 478<br/>?31.3.3 集成测试的一些思考 479<br/>31.4 JUnit 4和JUnit 5在Spring Boot中的区别 481<br/>31.5 本章小结 482<br/>第32章 Spring Data ElasticSearch的用法 483<br/>32.1 Spring Data ElasticSearch入门案例 483<br/>32.2 Spring Data ElasticSearch中的关键类 491<br/>3. ESRepository和JPARepository同时存在 492<br/>32.4 本章小结 495<br/>第33章 Sharding-JDBC与JPA结合使用进行分表 496<br/>33.1 Sharding-JDBC简介 496<br/>33.2 在JPA中利用Sharding-JDBC拆表 497<br/>?33.2.1 利用JPA拆分256个表的使用案例 497<br/>?33.2.2 实际集成过程中可能产生的问题 503<br/>?33.. Sharding-JDBC简单原理分析 503<br/>33.3 分库的思考 505<br/>?33.3.1 垂直拆分还是水平拆分 505<br/>?33.3.2 微服务还是多数据库 506<br/>?33.3.3 读写分离还是多读多写 506<br/>?33.3.4 分布式事务如何处理 506<br/>33.4 本章小结 507<br/>结束语 师傅领进门,修行靠个人 508


    张振华
    Java研发和架构师,在Java技术栈领域有丰富的实战经验,善于总结和分析问题,善于透过问题本质来解决实际工作中遇到的问题。
    曾就职于驴妈妈旅游网、上海携程旅行网、上海要买车网等互联网公司,有丰富的电商实战经验,就职期间担任过开发人员、架构师、技术专家等,对微服务体系有很深刻的认识。
    热衷于技术探索和研发,在GitChat、拉勾教育、CSDN上分享了大量关于Spring Data JPA、Java架构底层原理的文章,并获得一致。


    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购