`
angelbill3
  • 浏览: 256469 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

《Spring Boot实战》阅读整理

阅读更多
Manning出版社出版的《Spring Boot实战》(第1版)Craig Walls (著)/丁雪丰 (译)
Manning主页: https://www.manning.com

Spring Boot主页: https://projects.spring.io/spring-boot/
V1.5.2版本在线文档: http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/
GitHub: https://github.com/spring-projects/spring-boot

-------------------------------------------------------------------------
以下是我本人的书评
本书是畅销书《Spring实战》的作者Craig Walls的最新著作。
一个新技术的学习,除了以最快速度上手Hello World之外,还应该了解它的产生背景,主要用途等等方面。从本质上来说,Spring Boot就是Spring,它的目的是为了简化Spring开发。纵观人类文明史,其实就是懒人的福利,不想洗衣服,于是有了洗衣机,从半自动到全自动再到烘洗一体等。不想扫地,于是有了吸尘器,从有线到手持无线再到扫地机器人。对于Java开发者,Spring无人不知无人不晓,我刚入行的时候Spring还只是v2.5,现在Srping v5.0的snapshot都出来了,感概下。而正是因为Spring开发团队的不懈努力,才能解放我们的“双手”,让我们的代码变的更加简洁以及好维护。
本书主要针对的是Spring Boot的入门,要说快速入门有很多方式,blog、github、或是官网的文档都是学习的好地方。但是我想说的是,我花了一天的时间就看完了《Spring Boot实战》,然后对于这个框架有了一个系统的了解,算起来性价比还是很高的!当然如果是想深入了解Spring Boot,还是得从其它途径入手。

-------------------------------------------------------------------------
本书目录:
  • 第1章,入门
  • 第2章,开发第一个应用程序
  • 第3章,自定义配置
  • 第4章,测试
  • 第5章,Groovy与Spring Boot CLI
  • 第6章,在Spring Boot中使用Grails
  • 第7章,深入Actuator
  • 第8章,部署Spring Boot应用程序
  • 附录A,Spring Boot开发者工具
  • 附录B,Spring Boot起步依赖
  • 附录C,配置属性
  • 附录D,Spring Boot依赖

-------------------------------------------------------------------------
以下是书摘:

【译者序】
Spring Boot为开发者带来了更好的开发体验,但写完代码只是万里长征路上的一小步,后续的运维工作才是让很多人真正感动无助的。Spring Boot在运维方面做了很多工作,部署、监控、度量,无一不在其涉猎范围之内,结合Spring Cloud后还可以轻松地实现服务发现、服务降级等功能。

【序】
Spring Boot正是十几年来Java社区所探寻的那种框架。它那简单易用的开发特性和开箱即用的运维能力,让Java开发再度趣味横生。

【前言】
似乎每个Spring应用程序都让开发者的生活更上一个台阶,仅从Spring的组件的声明和织入方式就能看出端倪。让我们来看看Spring历史中的一些演化历程。
  • Spring1.0的出现彻底改变了我们开发企业级Java应用程序的方式。Spring的依赖注入与声明式事务意味着组件之间再也不存在紧耦合,再也不用重量级的EJB了。这玩意儿不能更好了。
  • 到了Spring2.0,我们可能在配置里使用自定义的XML命名空间,更小、更简单易懂的配置文件让Spring本身更便于使用。这玩意儿不能更好了。
  • Spring2.5让我们有了更优雅的面向注解的依赖注入模型(即@Conponent和@Autowired注解),以及面向注解的Srping MVC编程模型。不用再去显式地声明应用程序组件了,也不用需要去继承某个基础的控制类了。这玩意儿不能更好了。
  • 到了Spring3.0,我们有了一套基于Java的全新配置,它能够取代XML。在Spring3.1里,一系列以@Enable开头的注解进一步完善了这一特性。终于,我们第一次可以写出一个没有任何XML配置的Spring应用程序了。这玩意不能更好了。
  • Spring4.0对条件化配置提供了支持,根据应用程序的Classpath、环境和其他因素,运行时决策将决定使用哪些配置,忽略哪些配置。那些决策不需要在构建时通过编写脚本确定了;以前会把选好的配置放在部署的包里,现在情况不用了。这玩意不能更好了。

当我们觉得什么东西不可能更好了的时候,它一定会变的更好。Spring Boot的进步正在带来越来越大的益处。真的难以想象Srping还能变得更好,但它肯定会更好。毫无疑问,Spring的前景总是美好的。

【第1章】入门
Spring Boot四个核心: 自动配置、起步依赖、命令行界面、Actuator。

Spring Boot没有引入任何开式的代码生成,而是利用了Spring 4的条件化配置特性,以及Maven和Gradle提供的传递依赖解析,以此实现Spring应用程序上下文里的自动配置。

从根本上来说,Spring Boot的项目只是普通的Spring项目,只是它们正好用到了Spring Boot的起步依赖和自动配置而已。


Spring Boot CLI安装。

【第2章】开发第一个应用程序
@SpringBootApplication开启了Spring的组件扫描和Spring Boot的自动配置功能。

Spring Boot通过提供众多起步依赖降低项目依赖的复杂度。起步依赖本质上是一个Maven项目对象模型(POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。(一般以spring-boot-start-*的形式)。

Spring Boot的依赖不需要指定版本。
不知道自己所用依赖的版本,你多少有些不安。你要有信心,相信Spring Boot经过了足够的测试,确保引入的全部依赖都能相互兼容。这是一种解脱,只需指定起步依赖,不用担心自己需要维护哪些库,也不必担心它们的版本。(当然真的想看还是有很多办法的,比如mvn dependency命令或是通过Spring Boot actuator端点)。

Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。(其实就是一个做决策的过程)。
每当应用程序启动的时候,Spring Boot的自动配置都要做将近200个决定,涵盖安全、集成、持久化、Web开发等诸多方面。所有这些自动配置就是为了尽量不让你自己写配置。

自动配置相关JAR: spring-boot-autoconfigure。

所有这些配置如此与众不同,原因在于它们利用了Spring的条件化配置,这是Spring4.0引入的新特性。条件化配置允许配置存在于应用程序中,但在满足某些特定条件之前都忽略这个配置。

【第3章】自定义配置
Spring Boot的设计是先加载应用级配置,随后再考虑自动配置类。

application.properties\application.yml

如何使用自定义的配置。
Spring Boot的属性解析器非常智能,它会自动把驼峰规则的属性和使用连字符或下划线的同名属性关职起来。

默认错误页: error.*
默认资源: src/main/resources/static或src/main/resources/public

【第4章】测试
SpringJunit4ClassRunner

Spring: @ContextConfigureation: 指定了如何加载应用程序上下文。
Spring Boot: @SpringApplicationConfiguration: 加载Spring应用程序上下文,包括加载外部属性和Spring Boot日志。

Spring Mock MVC框架。(Since Spring v3.2)

HTML应用程序测试: Selenium(www.seleniumhq.org)

【第5章】Groovy与Spring Boot CLI
命令行工具Spring Boot CLI将强大的Spring Boot和Groovy结合到一起,针对Spring应用程序形成了一套简单而又强大的开发工具。

【第6章】在Spring Boot中使用Grails

【第7章】深入Actuator
Spring Boot Actuator提供了很多生产级的特性,比如监控和度量Spring Boot应用程序。Actouator的这些特性可以通过众多方式如REST端点、远程shell和JMX获得。

端点(Endpoints)列表:
官网可查: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready

端点举例
查看配置明细: /beans,/autoconfig,/evn,/mappings
运行时度量: /metrics,/trace,/dump,/health
关闭应用程序: /shutdown
获取应用信息: /info

定制Actuator
1. 修改端点ID
2. 启用和禁用端点
3. 添加自定义度量信息(比如定制/metrics,指定方法X被调用了多少次,最后一次调用的时间)。
4. 创建自定义跟踪仓库(比如定制/trace,扩充默认的100条跟踪条数到x,或往MongoDB中保存跟踪数据等)。
5. 插入自定义健康指示器(定制/health)。

保护Actuator: 使用Spring Security保护端点:
1. 定义所有的端点,有个固定的前缀。
2. 使用Security中的通配来保护端点。

【第8章】部署Spring Boot应用程序
Spring Boot应用程序可以用多种方式打包:
部署产物产生方式目标环境
Groovy源码手写Cloud Foundary及容器部署,比如Docker
可执行JARMaven、Gradle或Spring Boot CLI云环境,所括Cloud Foundary和Heroku,还有容器部署,比如Docker
WARMaven或GradleJava应用服务器或云环境,比如Cloud Foudary


构建WAR文件
SpringBootServletInitialiar#configure(SpringApplicationBuilder builder)

>mvm package
Servlet上下文路径会与WAR文件的主文件名相同。

-------------------------------------------------------------------------
本书提到的一些技术:

Groovy语言
构建工具: Maven、Gradle

《Spring实战》(第4版)

Spring Tool Suite是Eclipse IDE的一个发行版,增加了诸多能辅助Spring开发的特性。

用Thymeleaf定义Web视图

Spring Data JPA \ Spring Data MongoDB
Spring Security

Spring Boot的默认日志: LogBack(http://logback.qos.ch

Grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,并构建于Spring、Hibernate等开源框架之上,是一个高生产力一站式框架。

两款流行的数据库迁移库:
Flyway(http://flywaydb.org
Liquibase(http://www.liquibase.org
分享到:
评论

相关推荐

    Spring Boot实战 ,丁雪丰 (译者) 1

    【Spring Boot实战】由丁雪丰翻译,详细介绍了如何利用Spring Boot进行高效且轻松的Java应用程序开发。Spring Boot是Spring框架家族的一员,旨在简化开发流程,减少代码量,同时提供强大的生产系统构建能力。它引入...

    Spring Boot实战与原理分析视频课程包含14-18

    Spring Boot实战与原理分析视频课程包含14-18,本视频教程为网络整理,如有侵权,请联系删除。谢谢 Spring Boot实战与原理分析视频课程 课程目录: 1 Spring Boot概述与课程概要介绍20:33 2 Spring4 快速入门59:56...

    Springboot Actuator整合Spring boot admin源码整理

    通过以上步骤,我们可以了解到Spring Boot Actuator如何提供监控能力,Spring Boot Admin如何将这些信息可视化,并且通过源码阅读,我们可以更深入地理解这两个组件的内部机制。在实际项目中,这种整合能够帮助我们...

    JavaEE开发的颠覆者SpringBoot实战

    而“JavaEE开发的颠覆者 Spring Boot实战 完整版.pdf”则是整本书的全文,包含了所有章节和细节,从基础知识到高级主题,全面覆盖了Spring Boot的各个方面。 总的来说,这本书对于想要学习和掌握Spring Boot的...

    spring-boot示例项目

    cloud-alibaba|[nacos服务中心、配置中心、限流等使用(系列示例整理中...)](https://github.com/smltq/spring-boot-demo/blob/master/cloud-alibaba) #### Spring Cloud Alibaba 模块 模块名称|主要内容 ---|...

    Spring Boot实战 ,丁雪丰 (译者)

    本书以Spring 应用程序开发为中心,全面讲解如何运用Spring Boot 提高效率,使应用程序的开发和管 ...对于Spring Boot 开发应用中较为繁琐的内容,附录奉上整理完 毕的表格,一目了然,方便读者查阅。

    Spring Boot实战 ,丁雪丰 (译者) .zip

    本书以 Spring 应用程序开发为中心,全面讲解如何运用 Spring Boot 提高效率,使应用程序的开发和管 ...对于 Spring Boot 开发应用中较为繁琐的内容,附录奉上整理完 毕的表格,一目了然,方便读者查阅。

    spring boot game

    对于学习和理解Spring Boot的实战应用,以及如何将前端与后端紧密集成,这个项目提供了很好的参考。通过分析和实践这个项目,开发者可以深化对Spring Boot、Bootstrap和jQuery的理解,提高自己的全栈开发技能。

    Spring Boot 实战

    本书以 Spring 应用程序开发为中心,全面讲解如何运用 Spring Boot 提高效率,使应用程序的开发和管 ...对于 Spring Boot 开发应用中较为繁琐的内容,附录奉上整理完 毕的表格,一目了然,方便读者查阅。

    sprint boot 实战

    sprint boot 实战 高清,纯文本。本书以 Spring 应用程序开发为中心, 全面讲解... 对于 Spring Boot 开发应用中较为繁琐的内容, 附录奉上整理完 毕的表格, 一目了然, 方便读者查阅。 本书适合全体 Java 开发人员。

    springboot实战第四版网络书籍

    本书以Spring应用程序开发为中心,全面讲解如何运用Spring Boot提高效率,使应用程序的开发和管 理更加轻松有趣。...对于Spring Boot开发应用中较为繁琐的内容,附录奉上整理完 毕的表格,一目了然,方便读者查阅。

    Spring Boot 视频

    标题 "Spring Boot 视频" 暗示了这是一个关于Spring Boot框架的教育资源,可能是视频教程或讲座。Spring Boot是Java开发中一个流行的微服务框架,它简化了创建独立、生产级别的基于Spring的应用程序。这个资源可能...

    《springcloud&学习资料》--Spring Boot 系列实战合集.zip

    个人花大量时间整理出的实战资料,内容丰富,文档也很详细。无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人...

    Spring Cloud微服务架构实战[视频课程].txt打包整理.zip

    这个“Spring Cloud微服务架构实战[视频课程].txt打包整理.zip”压缩包很可能是为学习者提供的一系列课程文本资料,帮助他们深入理解并实践Spring Cloud的精髓。 1. **微服务架构**:微服务是一种将单一应用程序...

    参照阿里druid个人整理druid-spring-boot-starter可运行demo

    【阿里Druid与Spring Boot整合实战】 Druid是阿里巴巴开源的一款高效、强大的数据库连接池组件,它不仅提供了数据库连接池功能,还集成了监控、SQL解析、执行性能统计等多种实用特性,是Java开发中常用的数据库连接...

    SpringBoot视频教程全套百度网盘

    实战项目可以帮助开发者更好地理解Spring Boot的各项功能,并掌握如何将其应用于实际开发中。实战项目通常会涵盖Spring Boot的基本用法、数据库集成、安全控制、部署等多个方面。 ### Spring Boot总结 通过对...

Global site tag (gtag.js) - Google Analytics