Java全栈面试题汇总目录-CSDN博客
1. 什么是Spring Boot?
Spring Boot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,节省了繁重的配置,提供了各种启动器,开发者能快速上手。
2. Spring Boot有哪些优点?
- 容易上手,提升开发效率,为Spring开发提供一个更快、更广泛的入门体验
- 开箱即用,远离繁琐的配置
- 提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等
- 没有代码生成,也不需要XML配置
- 避免大量的Maven导入和各种版本冲突
3. Spring Boot的核心注解是哪个,它主要由哪几个注解组成的?
启动类上面的注解是@SpringBootApplication,它也是Spring Boot的核心注解,主要组合包含了以下3个注解:
@SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})。
@ComponentScan:Spring组件扫描。
4. Spring Boot自动配置原理是什么?
注解@EnableAutoConfiguration,@Configuration,@ConditionalOnClass就是自动配置的核心,
@EnableAutoConfiguration给容器导入META-INF/spring.factories里定义的自动配置类。
筛选有效的自动配置类。
每一个自动配置类结合对应的xxxProperties.java读取配置文件进行自动配置功能
5. Spring Boot是否可以使用XML配置?
Spring Boot推荐使用Java配置而非XML配置,但是Spring Boot中也可以使用XML配置,通过@ImportResource注解可以引入一个XML配置。
6. 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项目的自动化配置。
7. 如何实现Spring Boot应用程序的安全性?
为了实现Spring Boot的安全性,我们使用spring-boot-starter-security依赖项,并且必须添加安全配置。它只需要很少的代码。配置类将必须扩展WebSecurityConfigurerAdapter并覆盖其方法。
8. Spring Boot中如何解决跨域问题?
在后端通过(CORS,Cross-origin resource sharing)来解决跨域问题。这种解决方案并非Spring Boot特有的,在传统的SSM框架中,就可以通过CORS来解决跨域问题,只不过之前我们是在XML文件中配置CORS,现在可以通过实现WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题。