SpringBoot常见概念

什么是SpringBoot?

SpringBoot 是一个为了简化Java应用环境搭建和开发过程的一个框架。它比较方便的就是自动配置,不需要XML配置,在主配置类上打一个@SpringBootApplication标签就可以实现自动配置。SpringBoot还简化了Maven的配置,导入SpringBoot的starter架包就可以把对应的依赖包都导入到项目中,很方便,不用去考虑版本兼容。SpringBoot还内嵌了tomcat,可以以jar包的形式独立运行。它的缺点是,由于不用自己做配置,报错的时候很难去定位。

SpringBoot 自动配置原理?

SpringBoot 实现自动配置主要是依靠@SpringBootApplication这个注解,在主配置类上打上@SpringBootApplication注解就能实现自动配置,这个注解里面主要包含了三个注解,分别是@SpringBootConfiguration标明这个类是一个配置类、@EnableAutoConfiguration实现自动配置、@ComponentScan扫描组件。@EnableAutoConfiguration的底层使用了一个@Import注解,引入了一个自动配置导入选择器AutoConfigurationImportSelector,这个类里面有一个getCandidateConfigurations方法,获取候选配置的方法,他会去当前类路径下获取autoconfiguration jar包下面的META-INF文件夹下面的Spring.factories文件并以一个List返回(完成自动配置bean),这里面放了大量的自动配置项。

SpringBoot 的核心文件有哪几个?

application.yml(.properties)、bootstrap.yml(.properties)

  • 如配置中心config需要加载来自外部的配置信息是就要使用bootstrap.yml或.properties,在文件中配置外部配置信息的连接。
  • yml 格式不支持 @PropertySource 注解导入配置

SpringBoot 几种运行方式?

  • 打包用命令行java -jar xxx.jar运行
  • 用Maven插件运行
  • 直接main方法运行

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

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

如果启动的时候有多个ApplicationRunner和CommandLineRunner,想控制它们的启动顺序,可以实现 org.springframework.core.ordered接口或者使用 org.springframework.core.annotation.order注解。

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

  • @value标签+el表达式
  • @ConfigurationProperties标签
  • @propertySource+@ConfigurationProperties

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

Spring Boot支持Java Util Logging,Log4j2,Logback作为日志框架,如果你使用starters启动器,Spring Boot将使用Logback作为默认日志框架。无论使用哪种日志框架,Spring Boot都支持配置将日志输出到控制台或者文件中。
默认使用Logback作为日志框架,往资源目录下创建一个logback-spring.xml即可

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

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

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

你可能感兴趣的:(SpringBoot常见概念)