吐血整理1000道SpringBoot面试题

JAVA xmt_herman_gcy 1026浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xmtxtt,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序

昨天发的那篇文章,很多网友给私信,自己把控不住自己,一刷抖音久刷个不停。这让我想起了何炅的那句话:“想要得到你就要学会付出,要付出还要坚持;如果你真的觉得很难,那你就放弃,如果你放弃了就不要抱怨。人生就是这样,世界是平衡的,每个人都是通过自己的努力,去决定自己生活的样子。努力、坚持并付出,才能得到自己想要的生活。要么就和自己的平庸握手言和,要么,就让自己的努力配得上自己的梦想。“

今天,我给大家分享一些关于 SpringBoot 的面试题吧。

SpringBoot全新面试题
SpringBoot全新面试题

SpringBoot 中静态首页默认位置可以放在哪里?

答:当我们应用根目录时,可以直接映射,将 index.html 放入下面的位置:

classpath:/META-INF/resources/index.html
classpath:/resources/index.html
classpath:/static/index.html
classpath:/public/index.html

SpringBoot 中静态资源直接映射的优先级是怎样的?

答:SpringBoot 静态资源直接映射为/**,可以通过根目录来访问。/META-INF/resources/webjars/映射为/webjars/,通过访问 /webjar 访问。优先级顺序为:META-INF/resources > resources > static > public。

继承 WebMvcConfigurerAdapter 抽象类,常用的重写方法列举几个?

答:WebMvcConfigurerAdapter 实现 WebMvcConfigurer 接口,常用的可能需要重写的方法有下面几个:

/** 解决跨域问题 **/
public void addCorsMappings(CorsRegistry registry) ;
/** 添加拦截器 **/
void addInterceptors(InterceptorRegistry registry);
/** 这里配置视图解析器 **/
void configureViewResolvers(ViewResolverRegistry registry);
/** 配置内容裁决的一些选项 **/
void configureContentNegotiation(ContentNegotiationConfigurer configurer);
/** 视图跳转控制器 **/
void addViewControllers(ViewControllerRegistry registry);
/** 静态资源处理 **/
void addResourceHandlers(ResourceHandlerRegistry registry);
/** 默认静态资源处理器 **/
void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer);

SpringBoot 中怎么禁用某些自动配置特性?

答:有 3 种方法。如果我们想禁用某些自动配置特性,可以使用 @EnableAutoConfiguration 或 @SpringBootApplication 注解的 exclude 属性来指明。

// 方案1,下面的代码段是使 DataSourceAutoConfiguration 无效:
@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)
public class MyConfiguration {}
// 方案2
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class MyConfiguration { }
// 方案3,在配置文件中配置
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

@SpringBootApplication 引入了哪3个重要的注解?

答:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan。其它的 4 个 @Target、@Retention、@Documented、@Inherited,也重要,但应该不是本题想问的知识点。

@SpringBootApplication 注解中的属性相当于哪几个注解?

答:等价于以默认属性使用 @Configuration,@EnableAutoConfiguration 和 @ComponentScan。

使用 SpringBoot starter 好处是什么?

答:依赖管理是所有项目中至关重要的一部分。当一个项目变得相当复杂,管理依赖会成为一个噩梦,因为当中涉及太多 artifacts 了。

这时候 SpringBoot starter 就派上用处了。每一个 stater 都在扮演着提供我们所需的 Spring 特性的一站式商店角色。其他所需的依赖以一致的方式注入并且被管理。

所有的 starter 都归于 org.springframework.boot 组中,并且它们都以由 spring-boot-starter- 开头取名。这种命名方式使得我们更容易找到 starter 依赖,特别是当我们使用那些支持通过名字查找依赖的 IDE 当中。

SpringBoot 提供了非常多的 starter ,其中最常用的是:

  • spring-boot-starter:核心 starter,包括自动化配置支持,日志以及 YAML
  • spring-boot-starter-aop:Spring AOP 和 AspectJ 相关的切面编程 starter
  • spring-boot-starter-data-jpa:使用 Hibernate Spring Data JPA 的 starter
  • spring-boot-starter-jdbc:使用 HikariCP 连接池 JDBC 的 starter
  • spring-boot-starter-security:使用 Spring Security 的 starter
  • spring-boot-starter-test:SpringBoot 测试相关的 starter
  • spring-boot-starter-web:构建 restful、springMVC 的 web应用程序的 starter

使用 SpringBoot 如何自定义一个 starter?

非常的,简单,参考我的这篇文章:《手把手教你打造一个SpringBoot自定义的Starter

解锁更多关于 SpringBoot 的面试题,请扫码下方的小程序码,前去免费学习!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » 吐血整理1000道SpringBoot面试题