成功加入购物车
库存新书 封面非常新 内页干净 特价
杨开振 著 / 电子工业出版社 / 2021-07
售价 ¥ 36.80 1.8折
定价 ¥199.00
品相 九五品
上书时间2023-01-26
JavaEE互联网轻量级框架整合开发:SSM+Redis+Spring微服务(上下册)
随着移动互联网的兴起,以Java技术为后台的互联网技术占据了市场的主导地位。在Java互联网后台开发中,SSM框架(Spring+Spring?MVC+MyBatis)成为了主要架构,本书讲述了SSM框架从入门到实际工作的要求。与此同时,为了提高系统性能,NoSQL(尤其是Redis)在互联网系统中已经广泛应用用,为了适应这个变化,本书通过Spring讲解了有关Redis的技术应用。随着微服务的异军凸起,Spring微服务也成为时代的主流,本书也包括这方面的内容。本书主要分为7部分:第1部分对Java互联网的框架和主要涉及的模式做简单介绍;第2部分讲述MyBatis技术;第3部分讲述Spring基础(包括IoC、AOP和数据库应用),重点讲解Spring数据库事务应用,以满足互联网企业的应用要求;第4部分讲述Spring?MVC框架;第5部分通过Spring讲解Redis技术;第6部分讲解Spring微服务(Spring?Boot和Spring?Cloud);第7部分结合本书内容讲解Spring微服务实践。
杨开振,技术畅销书作家,精通Java 互联网技术开发和实践,拥有十余年一线企业开发经验,著有业内畅销书《深入浅出MyBatis 技术原理与实战》《深入浅出Spring Boot 2.x》和《Spring Cloud微服务和分布式系统实践》等。写作特点是技术点详尽准确、文字浅显易懂,立志于用书普及基础技术。刘家成,资深软件工程师,曾任职Synnex中国、亚信国际等,在电信、分销领域有丰富经验,在Java高并发和Spring生态有深刻的理解。
第1部分 入门和技术基础第1章 Java EE基础 21.1 Java EE概述 21.1.1 Java EE容器 31.1.2 Java EE组件 31.2 开发环境简介 41.2.1 Tomcat简介 41.2.1 Maven 51.2.3 Web项目结构 61.2.4 Web项目发布包 71.3 Web容器的组件DDServlet 71.3.1 Servlet入门实例 71.3.2 Servlet的生命周期 81.3.3 HttpServletRequest的应用 121.3.4 HttpServletResponse的应用 141.3.5 过滤器的使用 171.3.6 监听 201.3.7 Servlet容器初始化器 211.3.8 使用Cookie 231.3.9 提交表单 241.3.10 使用web.xml 26第2章 认识SSM框架、Redis和微服务 282.1 Spring框架 282.1.1 Spring IoC简介 282.1.2 Spring AOP 302.2 MyBatis简介 312.2.1 Hibernate简介 322.2.2 MyBatis 342.2.3 Hibernate和MyBatis的区别 352.3 Spring MVC简介 362.4 最流行的NoSQLDDRedis 362.5 SSM+Redis结构框图及概述 372.6 Spring微服务 38第3章 Java设计模式 403.1 Java反射技术 403.1.1 通过反射构建对象 403.1.2 反射方法 423.1.3 实例 423.2 动态代理模式和责任链模式 433.2.1 JDK动态代理 443.2.2 CGLIB动态代理 463.2.3 拦截器 483.2.4 责任链模式 513.3 观察者模式 543.3.1 概述 543.3.2 实例 553.4 普通工厂模式和抽象工厂模式 583.4.1 普通工厂模式 583.4.2 抽象工厂模式 593.5 建造者模式 613.5.1 概述 613.5.2 Builder模式实例 62第2部分 互联网持久框架DDMyBatis第4章 认识MyBatis核心组件 664.1 持久层的概念和MyBatis的特点 664.2 准备MyBatis环境 674.3 MyBatis的核心组件 694.4 SqlSessionFactory 704.4.1 使用XML配置文件构建SqlSessionFactory对象 704.4.2 使用代码构建SqlSessionFactory对象 724.5 SqlSession 724.6 映射器 734.6.1 用XML实现映射器 744.6.2 用注解实现映射器 754.6.3 用SqlSession发送SQL 764.6.4 用Mapper接口发送SQL 774.6.5 两种发送SQL的方式对比 774.7 生命周期 774.7.1 SqlSessionFactoryBuilder 774.7.2 SqlSessionFactory 784.7.3 SqlSession 784.7.4 Mapper 784.8 实例 79第5章 MyBatis配置 855.1 概述 855.2 properties属性 865.2.1 property子元素 865.2.2 properties文件 875.2.3 程序代码传递 875.3 settings配置 885.4 typeAliases别名 905.4.1 系统定义别名 915.4.2 自定义别名 925.5 typeHandler类型转换器 935.5.1 系统定义的typeHandler 945.5.2 自定义typeHandler 985.5.3 枚举typeHandler 1015.5.4 文件操作 1055.6 对象工厂 1065.7 插件 1085.8 运行环境 1085.8.1 事务管理器 1095.8.2 数据源环境 1115.9 databaseIdProvider 1145.9.1 使用系统默认的databaseIdProvider 1145.9.2 不使用系统规则 1165.10 引入映射器的方法 118第6章 映射器 1206.1 概述 1206.2 select元素DD查询语句 1216.2.1 简单的select元素的应用 1226.2.2 自动映射和驼峰映射 1236.2.3 传递多个参数 1246.2.4 使用resultMap映射结果集 1276.2.5 分页参数RowBounds 1276.3 insert元素DD插入语句 1296.3.1 概述 1296.3.2 简单的insert语句的应用 1306.3.3 主键回填 1306.3.4 自定义主键 1316.4 update元素和delete元素 1326.5 sql元素 1326.6 参数 1336.6.1 概述 1336.6.2 存储过程参数支持 1346.6.3 特殊字符串的替换和处理(#和$) 1346.7 resultMap元素 1346.7.1 resultMap元素的构成 1356.7.2 使用Map存储结果集 1366.7.3 使用POJO存储结果集 1366.8 级联 1376.8.1 MyBatis中的级联 1376.8.2 建立POJO 1406.8.3 配置映射文件 1436.8.4 N+1问题 1476.8.5 延迟加载 1476.8.6 另一种级联 1516.8.7 多对多级联 1536.9 缓存 1566.9.1 一级缓存和二级缓存 1576.9.2 缓存配置项、自定义和引用 1606.10 存储过程 1616.10.1 IN和OUT参数存储过程 1626.10.2 游标的使用 164第7章 动态SQL 1677.1 概述 1677.2 if元素 1677.3 choose、when和otherwise元素 1687.4 trim、where和set元素 1697.5 foreach元素 1707.6 用test的属性判断字符串 1717.7 bind元素 171第8章 MyBatis的解析和运行原理 1738.1 构建SqlSessionFactory过程 1748.1.1 构建Configuration 1758.1.2 构建映射器的内部组成 1768.1.3 构建SqlSessionFactory 1788.2 SqlSession运行过程 1798.2.1 映射器的动态代理 1798.2.2 SqlSession运行原理 183第9章 插件 1929.1 插件接口 1929.2 插件的初始化 1939.3 插件的代理和反射设计 1949.4 常用的工具类DDMetaObject 1979.5 插件开发过程和实例 1989.5.1 确定需要拦截的签名 1989.5.2 实现拦截方法 2009.5.3 配置和运行 2029.5.4 插件实例DD分页插件 203第3部分 Spring基础第10章 Spring IoC的概念 21610.1 Spring概述 21610.2 Spring IoC概述 21810.2.1 主动创建对象 21910.2.2 被动创建对象 22010.2.3 Spring IoC阐述 22210.3 Spring IoC容器 22310.3.1 Spring IoC容器的设计 22310.3.2 Spring IoC容器的初始化 22710.3.3 Spring Bean的生命周期 228第11章 装配Spring Bean 23311.1 依赖注入和依赖查找 23311.1.1 构造器注入 23311.1.2 使用setter注入 23411.1.3 依赖查找 23511.2 装配Bean概述 23611.3 通过XML配置装配Bean 23711.3.1 装配简易值 23711.3.2 装配集合 23811.3.3 命名空间装配 24111.4 通过注解装配Bean 24311.4.1 使用注解@Component装配Bean 24311.4.2 自动装配DD@Autowired 24711.4.3 自动装配的歧义性(注解@Primary和注解@Qualifier) 24811.4.4 装载带有参数的构造方法类 25111.4.5 使用注解@Bean装配 25211.4.6 注解自定义Bean的初始化和销毁方法 25311.5 装配的混合使用 25311.6 使用Profile 25611.6.1 使用注解@Profile配置 25611.6.2 使用XML定义Profile 25711.6.3 启动Profile 25811.7 加载属性文件 26011.7.1 使用注解方式加载属性文件 26111.7.2 使用XML方式加载属性文件 26311.8 条件化装配Bean 26411.9 Bean的作用域 26511.10 使用Spring表达式 26811.10.1 Spring EL相关的类 26811.10.2 Bean的属性和方法 27011.10.3 使用类的静态常量和方法 27111.10.4 Spring EL运算 271第12章 面向切面编程 27312.1 一个简单的约定游戏 27312.1.1 约定规则 27312.1.2 读者的代码 27512.1.3 笔者的代码 27712.2 Spring AOP的基本概念 27912.2.1 AOP的概念和使用原因 27912.2.2 面向切面编程的术语 28312.2.3 Spring对AOP的支持 28512.3 使用注解@AspectJ开发Spring AOP 28512.3.1 选择连接点 28512.3.2 创建切面 28612.3.3 切点 28712.3.4 测试AOP 28912.3.5 环绕通知 29112.3.6 织入 29312.3.7 向通知传递参数 29412.3.8 引入 29512.4 使用XML配置开发Spring AOP 29712.4.1 各类通知 29912.4.2 环绕通知 30112.4.3 向通知传递参数 30212.4.4 引入 30212.5 经典Spring AOP应用程序 30312.6 多个切面 305第13章 Spring和数据库编程 31113.1 传统的JDBC代码的弊端 31113.2 配置数据库 31313.2.1 使用简单数据库配置 31313.2.2 使用第三方数据库连接池 31413.2.3 使用JNDI数据库连接池 31413.3 JDBC代码失控的解决方案DDJdbcTemplate 31513.3.1 JdbcTemplate的增、删、查、改 31613.3.2 执行多条SQL语句 31713.3.3 JdbcTemplate的源码分析 31913.4 MyBatis-Spring项目 32013.4.1 配置SqlSessionFactoryBean 32113.4.2 SqlSessionTemplate的配置 32513.4.3 配置MapperFactoryBean 32713.4.4 配置MapperScannerConfigurer 32713.4.5 定制扫描 33013.4.6 使用Java配置文件配置MyBatis-Spring项目 33113.4.7 测试Spring+MyBatis 333第14章 深入Spring数据库事务管理 33614.1 Spring数据库事务管理器的设计 33614.1.1 配置事务管理器 33914.1.2 用Java配置方式实现Spring数据库事务 34014.2 编程式事务 34214.3 声明式事务 34214.3.1 @Transactional的配置项 34314.3.2 使用XML配置事务管理器 34414.3.3 事务定义器 34514.3.4 声明式事务的约定流程 34614.4 数据库的相关知识 34814.4.1 数据库事务ACID特性 34814.4.2 丢失更新 34814.4.3 隔离级别 34914.5 选择隔离级别和传播行为 35214.5.1 选择隔离级别 35214.5.2 传播行为 35314.6 在Spring+MyBatis组合中使用事务 35414.6.1 实例 35414.6.2 深入理解传播行为 36114.7 注解@Transactional的自调用失效问题 36614.8 典型错误用法剖析 37114.8.1 错误使用Service 37114.8.2 长时间占用事务 37214.8.3 错误捕捉异常 374第4部分 Spring MVC框架第15章 Spring MVC的初始化和流程 215.1 MVC设计概述 215.1.1 Spring MVC的架构 315.1.2 Spring MVC组件与流程 415.1.3 Spring MVC入门实例 515.2 Spring MVC初始化 915.2.1 初始化Spring IoC上下文 1015.2.2 初始化映射请求上下文 1015.2.3 使用注解配置方式初始化 1615.2.4 WebMvcConfigurer接口 2015.3 Spring MVC开发流程详解 2115.3.1 注解@RequestMapping的使用 2115.3.2 控制器的开发 2315.3.3 视图渲染 27第16章 Spring MVC基础组件开发 3116.1 控制器接收各类请求参数 3116.1.1 接收普通请求参数 3216.1.2 使用注解@RequestParam获取参数 3416.1.3 使用URL传递参数 3516.1.4 传递JSON参数 3616.1.5 接收列表数据和表单序列化 3816.2 重定向 4116.3 保存并获取属性参数 4316.3.1 注解@RequestAttribute 4316.3.2 注解@SessionAttribute和注解@SessionAttributes 4516.3.3 注解@CookieValue和注解@RequestHeader 4816.4 验证表单 4916.4.1 使用JSR 303注解验证输入内容 4916.4.2 使用验证器 5316.5 数据模型 5616.6 视图和视图解析器 5816.6.1 视图 5816.6.2 视图解析器 6116.6.3 实例:Excel视图的使用 6216.7 上传文件 6516.7.1 MultipartResolver概述 6616.7.2 提交上传文件表单 69第17章 构建REST风格网站 7317.1 REST风格的特点 7317.1.1 REST风格的概念 7317.1.2 注解@ResponseBody的使用 7517.2 Spring MVC对REST风格的支持 7617.2.1 Spring MVC支持REST风格的注解 7717.2.2 返回结果封装 8117.3 RestTemplate的使用 84第18章 Spring MVC高级应用 8918.1 Spring MVC处理器执行的过程 8918.1.1 HandlerMethodArgumentResolver机制 9018.1.2 转换器和格式化器概述 9218.1.3 一对一转换器(Converter) 9318.1.4 数组和集合转换器(GenericConverter) 9618.1.5 格式化器(Formatter) 10018.1.6 HttpMessageConverter消息转换器 10318.2 拦截器 10618.2.1 拦截器的定义 10618.2.2 单个拦截器的执行流程 10718.2.3 开发拦截器 10818.2.4 多个拦截器执行的顺序 10918.3 为控制器添加通知 11218.4 处理异常 11618.5 国际化 11718.5.1 概述 11718.5.2 MessageSource接口 11918.5.3 CookieLocaleResolver和SessionLocaleResolver 12118.5.4 国际化拦截器(LocaleChangeInterceptor) 12218.5.5 开发国际化 123第5部分 Redis应用第19章 Redis概述 12619.1 Redis在Java Web中的应用 12719.1.1 缓存 12719.1.2 高速读/写场景 12819.2 Redis的安装和使用 12919.2.1 在Windows环境下安装Redis 12919.2.2 在Linux下安装Redis 13119.3 Redis的Java API 13319.3.1 在Java程序中使用Redis 13319.3.2 在Spring中使用Redis 13419.4 Redis的数据结构简介 14119.5 Redis和关系数据库的差异 142第20章 Redis数据结构和其常用命令 14420.1 Redis数据结构DD字符串 14520.2 Redis数据结构DD哈希 15020.3 Redis数据结构DD链表 15420.4 Redis数据结构DD集合 16020.5 Redis数据结构DD有序集合 16320.5.1 Redis基础命令 16320.5.2 spring-data-redis对有序集合的封装 16620.5.3 使用Spring操作有序集合 168第21章 Redis的一些常用技术 17121.1 Redis事务 17121.1.1 Redis的基础事务 17221.1.2 探索Redis事务回滚 17421.1.3 使用watch命令监控事务 17521.2 流水线 17821.3 发布订阅 18021.4 超时命令 18421.5 使用Lua语言 18621.5.1 执行输入Lua程序代码 18621.5.2 执行Lua文件 190第22章 Redis配置 19322.1 Redis配置文件 19322.2 Redis备份(持久化) 19422.2.1 快照备份 19422.2.2 AOF备份 19522.3 Redis内存回收策略 19622.4 复制 19722.4.1 主从同步基础概念 19822.4.2 Redis主从同步配置 19822.4.3 Redis主从同步的过程 19922.5 哨兵模式 20122.5.1 哨兵模式概述 20122.5.2 搭建哨兵模式 20222.5.3 在Java中使用哨兵模式 20422.5.4 哨兵模式的其他配置项 20722.6 Redis集群 20722.6.1 概述 20722.6.2 搭建Redis集群 21022.6.3 在Spring中使用Redis集群 215第23章 Spring缓存机制和Redis的结合 21723.1 Redis和数据库的结合 21723.1.1 Redis和数据库读操作 21823.1.2 Redis和数据库写操作 21923.2 使用Spring缓存机制整合Redis 22023.2.1 准备测试环境 22023.2.2 Spring的缓存管理器 22423.2.3 缓存注解简介 22623.2.4 注解@Cacheable和@CachePut 22623.2.5 注解@CacheEvict 23023.2.6 不适用缓存的方法 23123.2.7 自调用失效问题 23123.2.8 Redis缓存管理器的配置DDRedisCacheConfiguration 23223.3 RedisTemplate的实例 234第6部分 Spring微服务基础第24章 Spring Boot入门 23824.1 Spring Boot的概念 23824.1.1 什么是Spring Boot? 23824.1.2 为什么要使用Spring Boot? 23924.1.3 为什么需要学习传统Spring应用程序? 23924.2 搭建Spring Boot开发环境 23924.2.1 使用Eclipse开发Spring Boot项目 24024.2.2 使用IntelliJ IDEA开发Spring Boot项目 24224.2.3 运行Spring Boot项目 24324.3 认识Spring Boot项目和开发 24424.3.1 Spring Boot项目是如何运行的 24424.3.2 在Spring Boot项目中如何进行自定义开发 24624.3.3 使用JSP视图 249第25章 Spring Boot开发 25225.1 使用Spring Boot开发数据库 25225.1.1 配置数据源 25225.1.2 整合MyBatis 25825.1.3 数据库事务 26425.2 使用Spring MVC 26425.2.1 使用WebMvcConfigurer接口 26525.2.2 使用Spring Boot的Spring MVC配置 26625.2.3 使用转换器 26625.3 使用Redis 26825.3.1 配置和使用Redis 26825.3.2 使用缓存管理器 272第26章 Spring Boot部署、测试和监控 27426.1 打包、部署和运行Spring Boot项目 27526.1.1 打包Spring Boot项目 27526.1.2 运行Spring Boot项目 27626.1.3 修改Spring Boot项目的配置 27726.2 Spring Boot Actuator 27826.2.1 Actuator端点简介 27826.2.2 保护Actuator端点 28026.2.3 配置项 28126.2.4 自定义端点 28326.2.5 健康指标项 28626.3 测试 28926.3.1 基本测试 29026.3.2 使用随机端口测试REST风格的请求 29126.3.3 Mock测试 292第27章 Spring Cloud微服务入门 29527.1 微服务架构的概念 29527.1.1 微服务的风格 29527.1.2 微服务架构总结 29827.2 Spring Cloud基础架构和概念 29827.2.1 Spring Cloud概述 29927.2.2 Spring Cloud的架构、组件和基础概念 29927.3 服务治理和服务发现 30127.3.1 服务治理中心DDEureka 30127.3.2 服务发现 30327.3.3 高可用 30527.3.4 基础架构 30727.4 服务调用DDRibbon 30927.4.1 Ribbon概述 31027.4.2 Ribbon实例 31027.4.3 Ribbon工作原理 31227.5 断路器DDHystrix 31527.5.1 Hystrix的使用 31627.5.2 舱壁隔离 32127.5.3 Hystrix仪表盘 32327.7 服务调用DDOpenFeign 32727.7.1 入门实例 32727.7.2 在OpenFeign中使用Hystrix 33027.8 旧网关DDZuul 33127.8.1 入门实例 33227.8.2 过滤器 33327.9 新网关DDGateway 33727.9.1 入门实例 33827.9.2 Gateway中的术语 34027.9.3 Gateway已有断言和过滤器的使用 34027.9.4 自定义过滤器 34527.10 新断路器DDResilience4j 34727.10.1 断路器 34827.10.2 限速器 35027.10.3 舱壁隔离 35227.10.4 限时器 353第7部分 系统实践第28章 高并发系统设计和Spring微服务实例 35628.1 高并发系统设计 35628.1.1 高并发系统的优化经验 35628.1.2 性能 35728.1.3 高可用 36328.2 微服务实例 36528.2.1 Spring Boot下的整合(product模块) 36628.2.2 服务调用(user模块) 37628.2.3 网关(gateway模块) 37828.2.4 测试 380附录A 数据库表模型 381
展开全部
配送说明
...
相似商品
为你推荐
开播时间:09月02日 10:30