SpringBoot---基本了解

摘要:
SpringBoot是Spring开源组织下的一个子项目。它是Spring组件的一站式解决方案。它简化了使用Spring的难度,简化了繁重的配置,并为开发人员快速入门提供了各种启动器。

什么是 Spring Boot?

  Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。Spring Boot 的最大的优势是“约定优于配置“

SpringBoot约定优于配置的体现

  一、Maven的目录结构:

    1.默认有resources文件夹存放配置文件

    2.默认打包方式为jar

  二、Spring Boot 默认支持 properties(.properties) 和 YAML(.yml .yaml ) 两种格式的配置文件

         如果在项目中遇到application.properties出现中文乱码的问题,可以改用YAML,

    出现原因是因为Spring Boot总是会以iso-8859的编码方式读取该文件。

         而且YAML拥有更简洁的语法,因此更推荐使用application.yml作为默认的配置文件。

  三、默认通过 spring.profiles.active 属性来根据运行环境自动读取不同的、额外的配置文件

         ex:将该属性定义为dev,SpringBoot就会额外从application-dev.properties/application-dev.yml文件中读取该环境的配置

  四、EnableAutoConfiguration 默认对于依赖的 starter 进行自动装载。

  五、spring-boot-start-web 中默认包含 spring-mvc 相关依赖以及内置的 tomcat 容器,使得构建一个 web 应用更加简单。

为什么要用 Spring Boot?

  Spring Boot 优点非常多,如:

    独立运行   创建独立的Spring应用程序

    内置Tomcat等容器,无需部署WAR文件

    简化maven配置

    自动配置Spring

    无代码生成并且对XML也没有配置要求

    提供一系列非功能特性,如安全、指标,应用监控,健康检测。

  Spring Boot 缺点?

    没有提供相应的服务发现和注册的配套功能,自身的acturator所提供的监控功能,也需要与现有的监控对接

Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

  Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。

  application 配置文件主要用于 Spring Boot 项目的自动化配置。

  bootstrap 配置文件有以下几个应用场景。

  使用SpringCloudConfig 配置中心时,要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;

  一些固定的不能被覆盖的属性;一些加密/解密的场景;

Spring Boot 的配置文件有哪几种格式?它们有什么区别?

  .properties 和 .yml,它们的区别主要是书写格式不同。

  1.properties: app.user.name-=jack

  2..yml

    server:

      port: 8889

  另外,.yml 格式不支持 @PropertySource 注解导入配置。

开启 Spring Boot 特性有哪两种方式?

  1.继承spring-boot-starter-parent项目

  2.导入spring-boot-dependencies项目依赖

 Spring Boot 需要独立的容器运行吗?

  可以不需要,内置了 Tomcat/ Jetty/Undertow三种web容器。

 运行 Spring Boot 有哪几种方式?

  1.打包用命令或者放到容器中运行

  2.用 Maven/ Gradle 插件运行

  3.直接执行 main 方法运行

你如何理解 Spring Boot 中的 Starters?

  Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其他技术,而不需要到处找示例代码和依赖包。如果你想使用 Spring JPA 访问数据库,只要加入 spring-boot-starter-data-jpa 启动器依赖就能使用了。Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖

如何在 Spring Boot 启动的时候运行一些特定的代码?

  可以实现接口 ApplicationRunner 或者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个 run 方法

Spring Boot 有哪几种读取配置的方式?

  Spring Boot 可以通过 @PropertySource,@Value,@Environment, @ConfigurationProperties 来绑定变量

  注意:yml 格式不支持 @PropertySource 注解导入配置。

Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?

  Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作为日志框架,如果你使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架。

SpringBoot 实现热部署有哪几种方式?

  主要有两种方式:

  • Spring Loaded
  • Spring-boot-devtools

你如何理解 Spring Boot 配置加载顺序?

  在 Spring Boot 里面,可以使用以下几种方式来加载配置。

  1.properties文件;

  2.YAML文件;

  3.系统环境变量;

  4.命令行参数;

  等等……

Spring Boot 如何定义多套不同环境配置? 

  提供多个配置文件:

  application.properties(spring.profiles.active=dev)

  application-dev.properties

  application-test.properties

  application-prod.properties

Spring Boot 可以兼容老 Spring 项目吗,如何做?

  可以兼容,使用 @ImportResource 注解导入老 Spring 项目配置文件。

   

 

免责声明:文章转载自《SpringBoot---基本了解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java实现 LeetCode 528 按权重随机选择(TreeMap)python-数据类型下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java读取properties配置文件时,中文乱码解决方法

Java读取properties配置文件时,中文乱码解决方法 转自:http://pig345.iteye.com/blog/725974 碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象,   Java代码   Properties prop=new Properties(); ...

springboot配置文件详解

https://blog.csdn.net/myvanguard/article/details/84844583 简介 springboot的默认配置文件 application.propertiesapplication.ymlyaml是标记语言,是以数据为中心的的配置文件 server: port:8081 12342.yaml语法1.基本语法k:(...

安卓系统中各镜像介绍

背景 对于安卓开发而言,了解各镜像的意义、内容以及如何制作,有极大的意义。 注意,ROM中的5个镜像文件的扩展名都是img,但其格式却不同,也就是说不能使用同一种方法对其进行格式解析。 系统镜像(System.img) 系统镜像用于存储Android系统的核心文件,将其解压出来,就是设备中/system目录,里面包含了Android系统主要的目录和文件。一...

SpringMVC加载配置Properties文件的几种方式

最近开发的项目使用了SpringMVC的框架,用下来感觉SpringMVC的代码实现的非常优雅,功能也非常强大, 网上介绍Controller参数绑定、URL映射的文章都很多了,写这篇博客主要总结一下SpringMVC加载配置Properties文件的几种方式 1.通过context:property-placeholde实现配置文件加载   1.1、在...

Android Verified Boot 2.0简要

from: https://ressrc.com/2018/10/26/android-verified-boot-2-0%E7%AE%80%E8%A6%81-thanksgining/   简要 AVB2.0被用于启动引导,此用法添加一个“vbmeta.img”镜像。public key被编译到bootloader中用于校验vbmeta数据,vb...

apolloJava客户端的使用

参考携程官网提供的https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97  整个项目组的代码如下  项目的pom.xml代码如下 <project xmlns="http://maven...