![]()
内容推荐 本书是一本经典而实用的畅销Spring学习指南。 第5版涵盖了Spring5.0和SpringBoot2.0里程碑式的更新。全书分为5个部分,共19章。部分(~5章)涵盖了构建Spring应用的基础话题。第2部分(第6~9章)讨论如何将Spring应用与其他应用进行集成。第3部分(0~12章)探讨Spring对反应式编程提供的全新支持。第4部分(3~15章)拆分单体应用模型,介绍SpringCloud和微服务开发。第5部分(6~19章)讨论如何为应用投入生产环境做准备以及如何进行部署。 本书既适合刚开始学习SpringBoot和Spring框架的Java开发人员快速上手,也适合经验丰富的Spring开发人员学习Spring的新特性,尤其适用于企业级Java开发人员。 作者简介 克雷格·沃斯(Craig Walls)是Pivotal的首席软件工程师、畅销书作者、Spring框架的热情支持者,经常在各种技术会议上发表演讲。 目录 部分Spring基础 章Spring起步3 1.1什么是Spring4 1.2初始化Spring应用6 1.2.1使用Spring Tool Suite初始化Spring项目7 1.2.2检查Spring项目的结构10 1.3编写Spring应用16 1.3.1处理Web请求16 1.3.2定义视图17 1.3.3测试控制器18 1.3.4构建和运行应用20 1.3.5了解Spring Boot DevTools21 1.3.6回顾一下23 1.4俯瞰Spring风景线24 1.4.1Spring核心框架24 1.4.2Spring Boot25 1.4.3Spring Data25 1.4.4Spring Security25 1.4.5Spring Integration和Spring Batch26 1.4.6Spring Cloud26 1.5小结26 第2章开发Web应用27 2.1展现信息27 2.1.1构建领域类28 2.1.2创建控制器类30 2.1.3设计视图33 2.2处理表单提交37 2.3校验表单输入43 2.3.1声明校验规则43 2.3.2在表单绑定的时候执行校验45 2.3.3展现校验错误46 2.4使用视图控制器48 2.5选择视图模板库49 2.6小结52 第3章使用数据53 3.1使用JDBC读取和写入数据53 3.1.1调整领域对象以适应持久化55 3.1.2使用JdbcTemplate56 3.1.3定义模式和预加载数据61 3.1.4插入数据63 3.2使用Spring Data JPA持久化数据72 3.2.1添加Spring Data JPA到项目中72 3.2.2将领域对象标注为实体73 3.2.3声明JPA repository76 3.2.4自定义JPA repository77 3.3小结80 第4章保护Spring81 4.1启用Spring Security81 4.2配置Spring Security83 4.2.1基于内存的用户存储85 4.2.2基于JDBC的用户存储86 4.2.3以LDAP作为后端的用户存储89 4.2.4自定义用户认证92 4.3保护Web请求100 4.3.1保护请求100 4.3.2创建自定义的登录页103 4.3.3退出105 4.3.4防止跨站请求伪造106 4.4了解用户是谁107 4.5小结109 第5章使用配置属性111 5.1细粒度的自动配置112 5.1.1理解Spring的环境抽象112 5.1.2配置数据源114 5.1.3配置嵌入式服务器115 5.1.4配置日志116 5.1.5使用特定的属性值118 5.2创建自己的配置属性118 5.2.1定义配置属性的持有者120 5.2.2声明配置属性元数据123 5.3使用profile进行配置125 5.3.1定义特定profile的属性126 5.3.2激活profile127 5.3.3使用profile条件化地创建bean128 5.4小结129 第2部分Spring集成 第6章创建REST服务133 6.1编写RESTful控制器134 6.1.1从服务器中检索数据136 6.1.2发送数据到服务器端140 6.1.3在服务器上更新数据142 6.1.4删除服务器上的数据144 6.2启用超媒体145 6.2.1添加超链接147 6.2.2创建资源装配器149 6.2.3命名嵌套式的关联关系154 6.3启用数据后端服务155 6.3.1调整资源路径和关系名称157 6.3.2分页和排序159 6.3.3添加自定义的端点160 6.3.4为SpringData端点添加自定义的超链接162 6.4小结163 第7章消费REST服务165 7.1使用RestTemplate消费REST端点166 7.1.1GET资源167 7.1.2PUT资源169 7.1.3DELETE资源169 7.1.4POST资源169 7.2使用Traverson导航RESTAPI170 7.3小结172 第8章发送异步消息173 8.1使用JMS发送消息174 8.1.1搭建JMS环境174 8.1.2使用JmsTemplate发送消息176 8.1.3接收JMS消息183 8.2使用RabbitMQ和AMQP186 8.2.1添加RabbitMQ到Spring中188 8.2.2通过RabbitTemplate发送消息189 8.2.3接收来自RabbitMQ的消息192 8.3使用Kafka的消息196 8.3.1为Spring搭建支持Kafka消息的环境197 8.3.2通过KafkaTemplate发送消息198 8.3.3编写Kafka监听器200 8.4小结201 第9章Spring集成203 9.1声明一个简单的集成流204 9.1.1使用XML定义集成流205 9.1.2使用Java配置集成流207 9.1.3使用SpringIntegration的DSL配置209 9.2Spring Integration功能概览210 9.2.1消息通道211 9.2.2过滤器212 9.2.3转换器213 9.2.4路由器214 9.2.5切分器216 9.2.6服务激活器218 9.2.7网关220 9.2.8通道适配器221 9.2.9端点模块223 9.3创建Email集成流224 9.4小结229 第3部分反应式Spring 0章理解反应式编程233 10.1反应式编程概览234 10.2初识Reactor237 10.2.1绘制反应式流图238 10.2.2添加Reactor依赖239 10.3使用常见的反应式操作240 10.3.1创建反应式类型240 10.3.2组合反应式类型244 10.3.3转换和过滤反应式流248 10.3.4在反应式类型上执行逻辑操作258 10.4小结259 1章开发反应式API261 11.1使用Spring WebFlux261 11.1.1Spring WebFlux简介262 11.1.2编写反应式控制器264 11.2定义函数式请求处理器268 11.3测试反应式控制器271 11.3.1测试GET请求271 11.3.2测试POST请求274 11.3.3使用实时服务器进行测试275 11.4反应式消费RESTAPI276 11.4.1获取资源277 11.4.2发送资源279 11.4.3删除资源280 11.4.4处理错误280 11.4.5交换请求282 11.5保护反应式WebAPI283 11.5.1配置反应式Web应用的安全性284 11.5.2配置反应式的用户详情服务285 11.6小结287 2章反应式持久化数据289 12.1理解Spring Data的反应式概况290 12.1.1Spring Data反应式本质论290 12.1.2反应式和非反应式类型之间的转换291 12.1.3开发反应式repository292 12.2使用反应式的Cassand rarepository293 12.2.1启用Spring Data Cassandra293 12.2.2理解Cassandra的数据模型296 12.2.3将领域对象映射为Cassandra持久化296 12.2.4编写反应式Cassandra repository301 12.3编写反应式的MongoDB repository304 12.3.1启用Spring Data MongoDB304 12.3.2将领域对象映射为文档306 12.3.3编写反应式的MongoDB repository接口309 12.4小结312 第4部分云原生Spring 3章注册和发现服务315 13.1思考微服务316 13.2搭建服务注册中心318 13.2.1配置Eureka321 13.2.2扩展Eureka324 13.3注册和发现服务325 13.3.1配置Eureka客户端属性326 13.3.2消费服务328 13.4小结332 4章管理配置333 14.1共享配置334 14.2运行配置服务器335 14.2.1启用配置服务器336 14.2.2填充配置仓库339 14.3消费共享配置341 14.4提供特定应用和profile的属性343 14.4.1提供特定应用的属性343 14.4.2提供来自profile的属性344 14.5保持配置属性的私密性346 14.5.1在Git中加密属性346 14.5.2在Vault中存储私密信息349 14.6在运行时刷新配置属性353 14.6.1手动刷新配置属性354 14.6.2自动刷新配置属性356 14.7小结363 5章处理失败和延迟365 15.1理解断路器模式365 15.2声明断路器367 15.2.1缓解延迟369 15.2.2管理断路器的阈值371 15.3监控失败372 15.3.1Hystrix Dashboard简介373 15.3.2理解Hystrix的线程模型375 15.4聚合多个Hystrix流377 15.5小结378 第5部分部署Spring 6章使用Spring Boot Actuator381 16.1Actuator概览382 16.1.1配置Actuator的基础路径383 16.1.2启用和禁用Actuator端点383 16.2消费Actuator端点384 16.2.1获取应用的基础信息385 16.2.2查看配置细节388 16.2.3查看应用的活动396 16.2.4获取应用的指标398 16.3自定义Actuator401 16.3.1为“/info”端点提供信息401 16.3.2实现自定义的健康指示器405 16.3.3注册自定义的指标407 16.3.4创建自定义的端点408 16.4保护Actuator411 16.5小结413 7章管理Spring415 17.1使用Spring Boot Admin415 17.1.1创建Admin服务器416 17.1.2注册Admin客户端418 17.2探索Admin服务器421 17.2.1查看应用基本的健康状况和信息421 17.2.2观察核心指标423 17.2.3探查环境属性424 17.2.4查看和设置日志级别424 17.2.5监控线程425 17.2.6跟踪HTTP请求426 17.3保护Admin服务器428 17.3.1为Admin服务器启用登录功能428 17.3.2为Actuator启用认证429 17.4小结429 8章使用JMX监控Spring431 18.1使用ActuatorM Bean431 18.2创建自己的MBean434 18.3发送通知436 18.4小结437 9章部署Spring439 19.1权衡各种部署方案440 19.2构建和部署WAR文件441 19.3推送JAR文件到Cloud Foundry上443 19.4在Docker容器中运行Spring Boot445 19.5以终为始449 19.6小结449 附录初始化Spring应用451 A.1使用Spring Tool Suite初始化项目451 A.2使用IntelliJ IDEA初始化项目454 A.3使用NetBeans初始化项目457 A.4在start.spring.io中初始化项目459 A.5使用命令行初始化项目462 A.5.1curl和InitializrAPI462 A.5.2Spring Boot命令行接口464 A.6使用元框架创建Spring应用465 A.7构建和运行项目465 |