spring配置

什么是 JavaConfig?
Spring JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的
纯 Java 方法。因此它有助于避免使用 XML 配置。使用 JavaConfig 的优点在
于:
(1)面向对象的配置。由于配置被定义为 JavaConfig 中的类,因此用户可以
充分利用 Java 中的面向对象功能。一个配置类可以继承另一个,重写它的
@Bean 方法等。
(2)减少或消除 XML 配置。基于依赖注入原则的外化配置的好处已被证明。但
是,许多开发人员不希望在 XML 和 Java 之间来回切换。JavaConfig 为开发人
员提供了一种纯 Java 方法来配置与 XML 配置概念相似的 Spring 容器。从技
术角度来讲,只使用 JavaConfig 配置类来配置容器是可行的,但实际上很多人
认为将 JavaConfig 与 XML 混合匹配是理想的。
(3)类型安全和重构友好。JavaConfig 提供了一种类型安全的方法来配置
Spring 容器。由于 Java 5.0 对泛型的支持,现在可以按类型而不是按名称检索
bean,不需要任何强制转换或基于字符串的查找。
Spring Boot 自动配置原理是什么?
注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就
是自动配置的核心,
@EnableAutoConfiguration 给容器导入 META-INF/spring.factories 里定义的
自动配置类。
筛选有效的自动配置类。
每一个自动配置类结合对应的 xxxProperties.java 读取配置文件进行自动配置
功能
你如何理解 Spring Boot 配置加载顺序?
在 Spring Boot 里面,可以使用以下几种方式来加载配置。
1)properties 文件;
2)YAML 文件;
3)系统环境变量;
4)命令行参数;
等等……
什么是 YAML?
YAML 是一种人类可读的数据序列化语言。它通常用于配置文件。与属性文件相
比,如果我们想要在配置文件中添加复杂的属性,YAML 文件就更加结构化,而
且更少混淆。可以看出 YAML 具有分层配置数据。
YAML 配置的优势在哪里 ?
YAML 现在可以算是非常流行的一种配置文件格式了,无论是前端还是后端,都
可以见到 YAML 配置。那么 YAML 配置和传统的 properties 配置相比到底有哪
些优势呢?

  1. 配置有序,在一些特殊的场景下,配置有序很关键
  2. 支持数组,数组中的元素可以是基本数据类型也可以是对象
  3. 简洁
    相比 properties 配置文件,YAML 还有一个缺点,就是不支持
    @PropertySource 注解导入自定义的 YAML 配置。
    Spring Boot 是否可以使用 XML 配置 ?
    Spring Boot 推荐使用 Java 配置而非 XML 配置,但是 Spring Boot 中也可以
    使用 XML 配置,通过 @ImportResource 注解可以引入一个 XML 配置。
    spring boot 核心配置文件是什么?bootstrap.properties 和
    application.properties 有何区别 ?
    单纯做 Spring Boot 开发,可能不太容易遇到 bootstrap.properties 配置文
    件,但是在结合 Spring Cloud 时,这个配置就会经常遇到了,特别是在需要加
    载一些远程配置文件的时侯。
    spring boot 核心的两个配置文件:
    • bootstrap (. yml 或者 . properties):boostrap 由父
    ApplicationContext 加载的,比 applicaton 优先加载,配置在应用程
    序上下文的引导阶段生效。一般来说我们在 Spring Cloud Config 或者
    Nacos 中会用到它。且 boostrap 里面的属性不能被覆盖;
    • application (. yml 或者 . properties): 由 ApplicatonContext 加
    载,用于 spring boot 项目的自动化配置。
    什么是 Spring Profiles?
    Spring Profiles 允许用户根据配置文件(dev,test,prod 等)来注册
    bean。因此,当应用程序在开发中运行时,只有某些 bean 可以加载,而在
    PRODUCTION 中,某些其他 bean 可以加载。假设我们的要求是 Swagger 文档仅
    适用于 QA 环境,并且禁用所有其他文档。这可以使用配置文件来完成。Spring
    Boot 使得使用配置文件非常简单。
    如何在自定义端口上运行 Spring Boot 应用程序?
    为了在自定义端口上运行 Spring Boot 应用程序,您可以在
    application.properties 中指定端口。server.port = 8090

你可能感兴趣的:(java)