springboot官方文档引注 2.0.0.M7

Part 1 (1-7)

对Spring Boot 的简短介绍,提供整个文档的一份快速阅读的地图,使用起来方便查找

Part 2 (8-12)

开始使用

  • 8 一些好处的介绍

  • 9 环境要求

    • 9.1 内嵌web容器版本

  • 10 安装手册

    • 10.1 java开发者的安装手册

      • 10.1.1 Maven安装模板

      • 10.1.2 Gradle 安装模板

    • 10.2 使用springboot CLI 来安装(做工程暂时不考虑)

    • 10.3 升级老版本springboot

  • 11 第一个springboot项目step-by-step

    • 11.1 第一步 pom.xml要怎么写

      这里使用继承spring-boot-starter-parent项目的pom文件的方式、然后声明了一些依赖仓库与插件仓库
    • 11.2 向Classpath中添加依赖

      这里介绍了可以忽略版本号的依赖管理方式,是因为继承上述pom文件里面继承了spring.io,它会给出我们最合适的版本。
    • 11.3 书写必要的java代码

      这里出现了三个注解@RestController@EnableAutoConfiguration@RequestMapping 和一个静态方法SpringApplication.run 下面的章节做点简单解释
      • 11.3.1 解释@RestController@RequestMapping,这俩都是springmvc的注解

      • 11.3.2 解释@EnableAutoConfiguration

        这个注解是让springboot根据你的依赖猜想你一般会如何配置bean,比如你添加了一个spring-boot-starter-web 的依赖,使用这个注解就自动配置一个web项目
        接下来又解释了所有官方Starters都能很好的被自动配置,但不仅仅只有官方Starters能被自动配置。
      • 11.3.3 解释main方法

        这里的main方法就是传统java程序的main方法,通过调用SpringApplication的静态方法run来启动springboot项目
    • 11.4 跑一跑项目

    • 11.5 打包可执行jar

      把所有Classpath中依赖+源代码都打包起来,在没有springboot的时候一般用uber这么干,现在可以直接在pom里面标签中添加插件了
  • 12 接下来需要阅读什么

Part 3 以上都是start-guide,这里开始介绍使用方法(13-22)

  • 13 构建工具广告

    • 13.1 依赖管理

      就是告诉你springboot帮你管理了大部分的依赖版本,你只需要声明依赖不用管版本,springboot会替你挑选合适版本,因为他们有一份BOM。
    • 13.2 介绍用maven构建springboot项目

      先介绍了一些继承spring-boot-starter-parent所提供的特性,注:在Spring配置文件中(properties文件或yml文件)支持占位符${...},但是macen filtering 使用@..@占位符,可以调用Maven属性resource.delimiter来重写之
      • 13.2.1 继承Starter Parent具体的代码

      • 13.2.2 不使用Parent POM该如何使用springboot

      • 13.2.3 使用Spring Boot Maven Plugin 来打包可执行jar

    • 13.3 Gradle如何使用Springboot

      这里直接贴出了链接,Spring Boot’s Gradle plugin的文档
    • 13.4 Ant如何使用

    • 13.5 介绍Starters

      这里还介绍了starter的命名格式(如果自己写starter的话)、分三类介绍了常用的starters。
  • 14 代码如何组织

    • 14.1 给出包结构的规范

      不要声明包,不声明包会导致所有class都在“默认”包下,这样会导致注解会扫描所有class
    • 14.2 Main Application Class 的位置

      如果使用推荐的位置,则可以使相应的注解免去配置,不然需要配置相应注解
  • 15 配置类的介绍

    springboot支持使用java代码来配置,属于配置文件的类需要@Configuration来修饰
    • 15.1 导入增加的配置类

      配置类不必每一个都使用@Configuration来修饰,也可以使用@Import来批量导入增加的配置类,还可以使用@ComponentScan注解来扫描Spring组件,包括配置类
    • 15.2 xml配置

  • 16 自动配置

    只需要添加一个@EnableAutoConfiguration就自动认为对@Configuration配置类自动配置
    • 16.1 替代自动配置

      如果在配置类中配置了自己的bean,那么自动配置的相同作用的bean就会被替代(不过有些bean是自己写的,spring也不知道是不是同一种,这种替代只针对常用的依赖,所以还是需要手动排除一下)
    • 16.2 排除特定的自动配置类

      通过定义自动配置注解的属性,如
      @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
  • 17 Spring Beans 和 依赖注入

    使用@ComponentScan注解来扫描对应的包发现beans,使用@Autowired(构造器注入的方式)来自动装配bean,如果使用推荐的结构组织代码,则可以免去对@ComponentScan注解属性的配置,如果一个bean只有一个构造器,那么@Autowired也可以省略掉
  • 18 使用 @SpringBootApplication注解

    使用@SpringBootApplication相当于同时使用 @Configuration@EnableAutoConfiguration@ComponentScan这三个注解,注解配置为默认,同时该注解也提供对@EnableAutoConfiguration@ComponentScan的个性化配置
  • 19 运行应用

    • 19.1 从IDE来运行、调试

    • 19.2 打包为jar运行、调试

    • 19.3 使用Maven插件来运行、调试

    • 19.4 使用Gradle插件来运行、调试

    • 19.5 热部署

      SpringBoot应用本质上是一个java应用,所以其热部署本质上是jvm的热部署,也就是在运行时替换相应的字节码来实现热部署,这里提到了一种完善的解决方案:JRebel。而spring提供的解决方案是spring-boot-devtools,实现quick restarts式的热部署
  • 20 开发者工具,指spring-boot-devtools

    使用这个工具需要先引入依赖项
    • 20.1 项目属性的默认值

      这里主要讲有一些默认属性如springMVC提供HTTP缓存,这个缓存可以在application.properties中配置,开发的时候并不希望缓存被使用,spring-boot-devtools会自动应用开发时配置。
    • 20.2 自动restart

      spring-boot-devtools会自动restart项目,这里还介绍了自动restart的条件,以及restart与reload技术上的区别,restart技术是使用两个类加载器实现,正在开发的类所使用的类加载器替换掉之前的类加载器,而reload是重新加载这个类的字节码
      • 20.2.1 改变日志配置

        每次restart都会写一份日志,这里介绍如何关闭这个日志
      • 20.2.2 排除资源文件

        排除restart不需要关注的目录
      • 20.2.3 不在Classpath中的文件发生改变,如何restart

      • 20.2.4 取消restart

      • 20.2.5 触发器文件使用方法

        触发器文件,Trigger File。用来使项目在特定条件下restart,而不是改变一点源码就restart,这样可以避免使用IDE时持续编译正在编写的文件时造成项目不断restart的尴尬。
      • 20.2.6 定制自己的Restart Classloader

      • 20.2.7 使用restart的限制

        就是反序列化对象时要使用spring的ConfigurableObjectInputStream而不能使用ObjectInputStream,很多第三方的类库反序列化时咩有考虑到context classloader,所以会出问题.
    • 20.3 自动刷新页面

    • 20.4 spring-boot-devtools的全局设置

    • 20.5 spring-boot-devtools还能对远程应用进行操作= =这么吊

  • 21 为生产环境而打包

  • 22 这一部分结束了,接下来该阅读的

Part 4 springboot的特性(23-47)

  • 23 SpringApplication

    启动时显示banner+log,非常炫酷 = =...
    • 23.1 启动失败提示

    • 23.2 定制banner

    • 23.3 定制SpringApplication

      简单说就是使用特定的SpringApplication来run
    • 23.4 SpringApplication的构建者模式的API

    • 23.5 Application的事件和监听者

      有些listener可以被注册成为Bean,但这需要这些listener监听的事件发生在ApplicationContext初始化完成之后。如果这些listener不能被配置为bean,就需要看看这里了。
    • 23.6 web环境

      这里介绍了两种ApplicationContext,分别是AnnotationConfigApplicationContextAnnotationConfigServletWebServerApplicationContext
    • 23.7 访问Application Arguments

      如果想访问传递给SpringApplication.run(…)方法的Arguments,可以注入一个org.springframework.boot.ApplicationArgumentsBean,可以对命令行选项进行访问。
    • 23.8 使用ApplicationRunner和CommandLineRunner

      SpringApplication.run(…)方法执行后,让程序执行一次代码。通过实现ApplicationRunner or CommandLineRunner接口来实现。这俩区别就在于对命令行选项的访问方式不同。
    • 23.9 Application退出

      退出的方法也是可编程的
    • 23.10 应用管理功能

  • 24 外部配置

    外部配置有很多种的方式,这一节比较有用
    • 24.1 配置随机值

      这种配置有利于测试
    • 24.2 访问命令行属性

    • 24.3 Application Property文件

      SpringApplication会加载这些文件并把配置载入Environment
    • 24.4 特定配置(Profile-specific)的属性

    • 24.5 属性中的占位符

    • 24.6 使用YAML代替Properties

      • 24.6.1 加载YAML的方式、以及YAML基本写法

      • 24.6.2 将YAML向Properties一样暴露给Environment的方式

      • 24.6.3 多配置YAML文档

        根据处于活动状态的指定配置文件的不同,一个属性可以在YAML中被配置多次
      • 24.6.4 YAML的缺点

        就是无法用@PropertySource注解加载
      • 24.6.5 合并YAML列表

        就是当指定配置文件处于活动状态时,让指定配置文件的同名List覆盖掉默认配置文件中的List
    • 24.7 类型安全的属性配置

      主要介绍@ConfigurationProperties注解的使用,使用该注解可以免去每个属性都用@Value的繁琐配置,并且这两个注解还有其他区别,以及配置文件可以被注册为一个bean,这些都在这一节阐述
      • 24.7.1 第三方的配置,就是@Bean注解的使用

      • 24.7.2 宽松的属性绑定方式,属性名称不一定要完全匹配

      • 24.7.3 属性转换,就是自定义属性的类型转换方式

      • 24.7.4 @ConfigurationProperties验证,对属性做验证,比如验证其非空

      • 24.7.5 @ConfigurationProperties@Value的对比

        @Value是核心容器里面的功能,与类型安全(type-safe)配置不同,没有其宽松的绑定方式和元数据支持,但是却有后者没有的SpEL表达式支持
  • 25 配置文件

    前面说到指定配置文件,在这一节对指定配置文件有详细介绍。spring可以将配置文件分隔开使不同的配置文件在特定的环境中发挥作用,比如生产环境的配置文件在生产环境中起作用。@Profile注解就是用来标注当前配置类是那个配置文件Part。使用属性spring.profiles.active可以指定处于活动状态的配置文件Part有哪些。
    • 25.1 添加活动状态的配置文件

      spring.profiles.active这个项目属性和其他属性一样遵守属性的优先级规则
    • 25.2 设置配置文件的API

    • 25.3 指定配置文件

  • 26 日志

    • 26.1 输出日志的格式

    • 26.2 控制台输出

      • 26.2.1 控制台输出彩色内容

    • 26.3 日志文件输出

    • 26.4 日志级别

    • 26.5 自定义日志配置

    • 26.6 logback扩展

  • 27 开发web应用

    • 27.1 Spring Web MVC框架

      • 27.1.1 Spring MVC自动配置

        这是springboot为springMVC提供的自动配置
      • 27.1.2 HttpMessageConverters

        SpringMVC使用HttpMessageConverter接口转换HTTP请求和响应
      • 27.1.3 自定义JSON序列化器和反序列化器

      • 27.1.4 MessageCodesResolver

        从绑定的errors产生用来渲染错误信息的错误码,springboot有一个默认的实现
      • 27.1.5 静态内容

      • 27.1.6 欢迎页

      • 27.1.7 定制图标

      • 27.1.8 可定制化ConfigurableWebBindingInitializer

      • 27.1.9 模板引擎

        这边的注意很有用----注:IntelliJ IDEA根据你运行应用的方式会对classpath进行不同的排序。在IDE里通过main方法运行应用,跟从Maven,或Gradle,或打包好的jar中运行相比会导致不同的顺序,这可能导致Spring Boot不能从classpath下成功地找到模板。如果遇到这个问题,你可以在IDE里重新对classpath进行排序,将模块的类和资源放到第一位。或者,你可以配置模块的前缀为classpath*:/templates/,这样会查找classpath下的所有模板目录。
      • 27.1.10 错误处理

      • 27.1.11 Spring HATEOAS

      • 27.1.12 跨域资源共享CORS支持

    • 27.2 Spring WebFlux框架

    • 27.3 JAX-RS和Jersey

    • 27.4 内嵌servlet容器支持

      • 27.4.1 Servlets, Filters和listeners

      • 27.4.2 Servlet上下文初始化

      • 27.4.3 ServletWebServerApplicationContext

      • 27.4.4 自定义内嵌servlet容器

      • 27.4.5 对JSP的限制

  • 28 安全

    • 28.1 OAuth2的支持

      • 28.1.1 客户端

    • 28.2 Actuator Security

  • 29 使用关系型数据库

    • 29.1 配置datasource

      • 29.1.1 对内嵌数据库支持

        内存数据库
      • 29.1.2 连接生产环境数据库

      • 29.1.3 连接JNDI数据源

    • 29.2 使用JdbcTemplate

    • 29.3 JPA 和 Spring Data

    • 29.4 使用h2 web控制台

    • 29.5 使用JOOQ

  • 30 使用NoSQL技术

    • 30.1 Redis

      • 30.1.1 连接Redis

    • 30.2 MongoDB

      • 30.2.1 连接mongoDB数据库

      • 30.2.2 MongoTemplate

      • 30.2.3 Spring Data MongoDB Repositories

      • 30.2.4 内嵌的Mongo

    • 30.3 Neo4j图数据库

    • 30.4 Gemfire 一个高性能分布式内存对象缓存系统

    • 30.5 Solr

      使用Java基于Lucene开发的全文检索服务;是一个独立的企业级搜索应用服务器;lucene是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。
    • 30.6 Elasticsearch

      ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
    • 30.7 Cassandra

      Apache Cassandra是一套开源分布式数据库管理系统,混合型非关系数据库
    • 30.8 Couchbase

      还是一个数据库
    • 30.9 LDAP

      LDAP (轻型目录访问协议)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。
    • 30.10 InfluxDB

      时间序列数据库
  • 31 Caching, spring支持方法缓存

  • 32 消息

    spring框架对继承消息中间件(消息系统)提供强大支持
    • 32.1 JMS

      javax.jms.ConnectionFactory接口提供标准的用于创建javax.jms.Connection的方法,javax.jms.Connection用于和JMS代理(消息中间件)交互
    • 32.2 AMQP

      高级消息队列协议(AMQP)是一个用于消息中间件的,平台无关的,线路级(wire-level)协议
    • 32.3 Apache Kafka(一个开源消息系统)

  • 33 调用远程rest服务byRestTemplate

  • 34 调用远程rest服务byWebClient

  • 35 验证

    JSR-303是一个验证标准,类路径上存在JSR-303实现(比如Hibernate validator),Bean Validation1.1支持的方法验证特性就会自动启用。这允许bean方法的参数和/或者返回值,被标注为javax.validation约束。也就是说对bean的方法参数与返回值进行验证
  • 36 发送邮件

  • 37 使用JTA处理分布式事务

  • 38 Hazelcast

    Hazelcast 使得 Java 程序员更容易开发分布式计算系统,可以为基于jvm环境运行的各种应用提供分布式集群和分布式缓存服务:分布式”、“集群服务”、“网格式内存数据”、“分布式缓存“、“弹性可伸缩服务”
  • 39 Quartz Scheduler

    Quartz调度器,定时任务.
  • 40 Spring Integration

    spring集成
  • 41 Spring Session

  • 42 基于JMX的监控和管理

    ava管理扩展(JMX)提供了一个标准的用于监控和管理应用的机制。默认情况下,Spring Boot将创建一个id为‘mbeanServer’的MBeanServer,并导出任何被Spring JMX注解(@ManagedResource,@ManagedAttribute,@ManagedOperation)的beans
  • 43 测试

    • 43.1 test scope内的依赖

    • 43.2 测试Spring应用

    • 43.3 测试SpringBoot应用

    • 43.4 测试工具类

  • 44 WebSockets

    Spring Boot为内嵌的Tomcat(8和7),Jetty 9和Undertow提供WebSockets自动配置
  • 45 Web Services

  • 46 创建自己的auto-configuration

    这个在开发library时比较管用
  • 47 What to Read Next

Part 5 Spring Boot Actuator

这部分讲述spring对监控和管理生产环境中的应用的支持。

转载于:https://www.cnblogs.com/Theshy/p/8521948.html

你可能感兴趣的:(springboot官方文档引注 2.0.0.M7)