SpringBoot常见知识点面试问题总结

SpringBoot是Spring开源下的子项目,是Spring组件的一站式解决方案,简化了使用Spring的开发难度和配置。它的设计目的是简化新Spring应用程序的初始构造和开发过程。框架以特定的方式配置,因此开发人员不再需要定义模板化的配置。SpringBoot是一个为框架服务的框架。-优点:没有主流开发框架的配置集成,项目可以独立运行,不需要外部依赖Servlet容器。提供运行

SpringBoot常见知识点面试问题总结

SpringBoot是Spring开源下的子项目,是Spring组件的一站式解决方案,简化了使用Spring的开发难度和配置。它的设计目的是简化新Spring应用程序的初始构造和开发过程。框架以特定的方式配置,因此开发人员不再需要定义模板化的配置。Spring Boot是一个为框架服务的框架。

-优点:没有主流开发框架的配置集成,项目可以独立运行,不需要外部依赖Servlet容器。提供运行时应用程序监控和控制。大大提高了开发和部署的效率。与云计算的自然集成。

-缺点:版本迭代速度快,模块变化大,报错时定位困难。

春天MVC和Spring Boot都属于春天。

Spring MVC是一个基于Spring的Servlet)MVC框架,它提供了一种轻耦合的方式来开发web应用程序。它是Spring的一个模块,也是一个web框架。通过DispatcherServlet、ModelAndView、View Resolver可以轻松开发web应用;

Spring使用DI依赖注入技术实现ioc,为依赖注入提供容器,使用动态代理技术实现aop,解决了面向方面编程的问题。

SpringBoot是一套基于Spring的快速开发集成包。Spring Boot实现了自动配置,降低了项目建设的复杂度。主要是为了解决使用Spring框架需要大量配置的问题,所以并不是用来替代Spring的解决方案,而是一个与Spring框架紧密结合的工具,提升Spring开发者体验。同时集成了大量常用的第三方库配置(如杰克森、JDBC、Mongo、Redis、Mail等。),而且这些第三方库几乎可以在Spring Boot应用程序中进行开箱即用的配置。

-@Configuration:用于表示当前类是配置类。该功能与bean和XML相同

-@Bean:用于将当前方法的返回值作为Bean对象存储在Spring的IOC容器中。

-@ComponentScan:用于Spring在创建容器时将扫描的包。

-@PropertySource:用于指定属性文件的位置。

-@Value:用于将常量、配置文件中的值以及其他bean的属性值注入变量中,作为变量的初始值。

YML是一种高度可读的格式,用于表示数据序列化,这与XML相同。这种语言侧重于数据,而不是标记语言。

它通常用于配置文件。

YAML的文件更有条理,不那么混乱。可以看出,YAML具有分层的配置数据。

语法格式:1。区分大小写2。缩进用来表示层级关系3。缩进时不允许使用Tab键,只允许使用空格。

启动类上的标注是@SpringBootApplication,这也是SpringBoot的核心标注。

主组合包含以下三个音符:

@SpringBootConfiguration:结合@Configuration注释实现配置文件的功能。

@EnableAutoConfiguration:打开自动配置功能,或者关闭某个自动配置选项,比如关闭数据源自动配置功能:

@ componentscan: spring组件扫描。

1.@PropertySource+@Value:使用@Value批注读取properties和yml的值。

2.@ property source+@ configuration properties:注意:需要在startup类中添加一个Note @ EnableConfigurationProperties。

装载顺序:

首先加载bootstrap . yml(bootstrap . properties)。

加载application . yml(application . properties)后。

应用场景:

1.使用Spring Cloud Config配置中心时,需要在bootstrap配置文件中添加连接到配置中心的配置属性,以加载外部配置中心的配置信息。

2.一些无法覆盖的固定属性。

3.一些加密/解密场景;

差异:

Bootstrap.yml可以理解为系统层面的一些参数配置,一般不会改变。

应用程序配置文件可用于定义应用程序级别,主要用于Spring Boot项目的自动配置。

在同一个目录下,如果有相同的application.properties和application.yml文件,则首先引用属性文件。同时,属性的优先级以第一个声明为准。以后不会有覆盖。

Spring-boot-maven-plugin是一个插件,它将spring boot的应用程序打包到一个jar中,所有应用程序都应该使用这个jar

包含了启动操作所需的所有jar,逻辑上将具备独立操作的条件。

运行Java-jarxxx.jar。

-用命令打包它或在容器Docker中运行它。

-使用Maven/ Gradle插件运行。

-直接运行main方法。

为异常捕获自定义一个类,在类的顶部用@RestControllerAdvice进行注释,然后定义捕获指定异常的方法,用@ExceptionHandler进行注释,用value属性指定要捕获的异常的类型,或者在方法的参数上指定异常的类型。

在实际开发中,我们需要重启应用服务器来修改某个代码的逻辑函数或者页面,无形中降低了开发效率。热部署是指当我们修改代码时,服务可以自动重启并加载新修改的内容,大大提高了我们开发的效率:SpringBoot官方提供了热部署功能:

 <!-热部署-->
<依赖性>
    < groupId > org . spring framework . boot </groupId >
    < artifact id > spring-boot-dev tools </artifact id >
    <可选>真</可选>
</依赖关系>

annotation @ sptingbootapapplication是一个暴露给用户的入口,它的底层其实是通过annotation @ enable auto configuration来实现的。

I .集成(启动)相关组件

jar包命名规范包括:spring-boot-starter。

第二,SpringBoot会采用SPI机制。,根据协议扫描出/META-INF/目录下的文件spring.factories(可以通过解析键值获得所有依赖的配置类,然后按照顺序添加到spring容器中来完成)。然后SpringBoot会根据协议自动使用SpringFactoriesLoader加载配置文件的内容。

第三,Spring获取第三方jar中的配置后,会调用ImportSelector接口完成动态加载。@Configuration的配置类必须包含在组件中的类之上,声明为Bean注释,然后将方法的返回值或属性注入IOC容器,即完成自动集成配置。

春季SPI

SPI(Service Provider Interface)服务提供了一个接口,简单来说就是用来解耦,实现自由插拔。

指定了Spring的SPI文件,需要放在项目的META-INF下,文件名必须是spring.factories。

Spring SPI使用SpringFactoriesLoader来加载spring.factories文件。SpringFactoriesLoader不仅可以加载声明的类对象,还可以直接取出预定义的完全限定名。

通过类加载器获取类路径下的factors _ resource _ location,以属性的方式解析配置文件,配置文件的键是声明的类型,值是具体实现的列表,最后将结果添加到缓存中,缓存的键是类加载器,值是配置文件的内容;

赠送20本心理学电子书,添加 微信:56163509  备注:心理学

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.xinli1988.com/50648.html