美文网首页
《spring boot实战》读书笔记

《spring boot实战》读书笔记

作者: 程序员小2 | 来源:发表于2020-07-12 23:01 被阅读0次

    《spring boot实战》读书笔记

    《spring boot实战》 【美】Craig Walls 著;丁雪丰 译

    一、入门

    spring boot四个核心:

    自动配置:针对spring应用程序常见的些应用功能,spring boot能够自动提供相关配置;

    起步依赖:利用了传递依赖解析,把常用的库聚合在一起,组成了几个为特定功能而定制的依赖。(**-starter)

    命令行界面:去除代码噪音(import, getter,setter等)

    Actuator:提供在运行时检视应用程序内部情况的能力;

    二、spring boot应用程序

    @SpringBootApplication注解将三个有用的注解组合在一起:

    @Configuration, @ComponentScan, @EnableAutoConfiguration

    三、自定义配置

    两种影响自动配置的方式:使用显示配置进行覆盖和使用属性进行精细化配置;

    显示配置:想要覆盖spring boot的自动配置,你所要做的仅仅是编写一个显示的配置。Spring boot会发现你的配置,随后降低自动配置的优先级,以你的配置为准。

    Spring boot的设计师加载应用级配置,随后再考虑自动配置类。 自动配置类上有可能加@ConditionalOnMissingBean注解, 比如jdbcTemplate, 要求当前不存在JdbcOperations bean时才生效,如果应用级配置已经有了jdbcTempalte了,那么就不再执行了。

    通过属性文件外置配置:spring boot能从多种属性源获取属性, 优先级顺序依次为:

    1)命令行参数

    2)java:comp/env里的JNDI属性

    3)JVM系统属性

    4)操作系统环境变量

    5)随机生成的带random.*前缀的属性(在设置其他属性时可以引用它们,比如${random.long})

    6)应用程序以外的application.properties等文件

    7)打包在应用程序的application.properties等文件

    8)通过@PropertySource标注的属性源

    9)默认属性

    高优先级属性源里设置的属性会覆盖低优先级的相同属性;

    默认情况下,日志文件的大小达到10mb时会切分一次;

    spring boot自动配置的默认错误处理器会查找名为error的视图,如果找不到就用默认的白标视图;

    四、测试

    @SpringApplicationConfiguration

    测试http请求:Spring Mock MVC: MockMvcBuilders

    @WebIntegrationTest

    使用Selenium测试Html页面;

    五、Grovy与Spring Boot CLI

    通过Groovy消除代码噪声, 不需要public,private等限定符; 行尾分号; getter、setter等;

    @Grab注解会告诉Groovy在启动应用程序时自动获取一些依赖的库;

    Spring Boot CLI的技能:

    cli可以利用spring boot的自动配置和起步依赖;

    cli可以检测使用的类,自动解析合适的依赖库来支持那些类;

    cli知道多数常用类在哪些包里,如果用到了这些类,它会把这些包加入Groovy的默认包里;

    cli如果检测到当前运行的是个web程序,会自动引入嵌入式web容器(默认tomcat)供程序使用;

    覆盖默认依赖版本:@GrabMetadata

    添加依赖仓库:默认情况下,@Grab声明的依赖是从Maven中心仓库拉取的。此外,Spring Boot还注册了spring的里程碑及快照仓库,以便获取spring项目的预发布版本依赖。

    @GrabResolver注解:指定额外的仓库。

    六、在Spring Boot中使用Grails

    GORM: @Entity注解让实体类变成GORM, GORM的工作原理要求实体类必须用Groovy来编写;可直接通过实体类进行持久化操作; ·

    GSP: Groovy SServer Pages 将模型数据以html的形式呈现给浏览器; 必须要放一个隐藏域,其中包含CSRF令牌,spring boot security在提交post请求时要求带这个令牌,htymeleaf在呈现html时会自动包含这个令牌,但是GSP里必须在隐藏域显示的包含它;

    创建新的grails项目:grails create-app **

    运行应用程序:grails run-app **

    七、深入Actuator

    spring-boot-starter-actuator

    端点可以分为三大类:配置端点、度量端点和其他端点;

    配置端点:

    /beans 获得bean装配报告:bean, resource, dependencies, scope, type;

    /autoconfig 详解自动配置:positiveMatches, condition, message, negativeMatches;

    /env 查看配置属性:/env会生成应用程序可用的所有环境属性的列表,无论这些属性是否用到。带有password、secret、key的属性会加上**

    运行时度量:

    /metrics :垃圾收集计数、内存使用和空闲数量、堆、类加载器、系统(处理器数量、运行时间、平均负载)、线程池、数据源、tomcat回话、http计数;

    /trace 追踪web请求: timestamp, method, path,

    /dump 生成当前线程活动的快照;

    /health 监控应用程序健康情况:diskspace, db, redis, rebbit

    其他:

    /shutdown 关闭应用程序, 这个端点默认是不启用的, 可以endpoints.shutdown.enabled=true将其打开;

    /info 获取应用信息;

    连接actuator的远程shell: spring-boot-starter-remote-shell, 用户名、密码、端口号;

    通过JMX监控应用程序;

    定制Actuator:

    重命名端点: endpoints.endpointId.id=**

    启用或禁用端点:endpoints.endPointId.enabled=true/false

    禁用全部端点:endpoints.enabled=false;

    如果想只打开一两个端点, 就可以使用禁用全部,再启用想要的那一两个;

    添加自定义度量信息:CountService计数器接口;GaugeService 添加度量值;

    创建自定义跟踪仓库:/trace端点报告的跟踪信息都存储在内存仓库里,默认100个条目; InMemoryTraceRepository Bean调整trace条目等信息;

    插入自定义健康指示器:HealthIndicator接口

    保护Actuator端点:SecurityConfig

    相关文章

      网友评论

          本文标题:《spring boot实战》读书笔记

          本文链接:https://www.haomeiwen.com/subject/xbqocktx.html