SpringBoot面试常问

21 篇文章 0 订阅

什么是 Spring Boot?有什么优点?

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

优点:

  • 为所有Spring开发者更快的入门
  • 开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化Web项目
  • 没有冗余代码生成和XML配置的要求

Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:

@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。

@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

@ComponentScan:Spring组件扫描。

自动配置原理:
自动配置真正实现是从classpath中搜寻所有的META-INF/spring.factories配置文件 ,并将其中对应的 org.springframework.boot.autoconfigure. 包下的配置项,通过反射实例化为对应标注了 @Configuration的JavaConfig形式的IOC容器配置类 , 然后将这些都汇总成为一个实例并加载到IOC容器中。

SpringBoot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值

比较一下 Spring Security 和 Shiro 各自的优缺点 ?

Spring Security是一个框架,侧重于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring安全性的真正强大之处在于它可以轻松地扩展以满足定制需求

Shiro 和 Spring Security 相比,主要有如下一些特点:

Spring Security 是一个重量级的安全管理框架;Shiro 则是一个轻量级的安全管理框架
Spring Security 概念复杂,配置繁琐;Shiro 概念简单、配置简单
Spring Security 功能强大;Shiro 功能简单

Spring Boot 中如何解决跨域问题 ?

参考文章
可以通过实现WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题。

如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?Spring Boot项目如何热部署?

这可以使用 DEV 工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat 将重新启动。Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java 开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。开发人员可以重新加载 Spring Boot 上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。Spring Boot 在发布它的第一个版本时没有这个功能。这是开发人员最需要的功能。DevTools 模块完全满足开发人员的需求。该模块将在生产环境中被禁用。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些常见的Spring Boot面试问题及其回答: 1. 什么是Spring BootSpring Boot是一个基于Spring框架的快速开发应用程序的工具。它可以帮助我们更快地创建和部署Spring应用程序,而无需进行繁琐的配置。 2. Spring Boot的主要优点是什么? Spring Boot的主要优点包括: - 快速开发应用程序,减少配置工作 - 提供了内置的Tomcat、Jetty等Web服务器,无需额外安装 - 提供了丰富的Starter依赖,可以快速集成其他框架和库 - 提供了可视化的管理界面,方便监控应用程序运行状态 3. Spring Boot如何处理配置文件? Spring Boot会自动加载application.properties或application.yml文件中的配置信息,并将其应用到应用程序中。我们也可以使用@Value注解来注入配置文件中的属性值。 4. Spring Boot中的Starter依赖是什么? Starter依赖是Spring Boot提供的一种快速集成其他框架和库的方式。例如,如果我们要集成Spring Data JPA,可以使用spring-boot-starter-data-jpa依赖,它会自动引入所需的其他依赖。 5. Spring Boot如何处理异常? Spring Boot提供了一套异常处理机制,可以通过@ControllerAdvice注解来处理应用程序中的异常。我们可以在异常处理类中定义异常处理方法,当应用程序抛出异常时,Spring Boot会自动调用对应的异常处理方法。 6. Spring Boot中的自动配置是什么? Spring Boot的自动配置机制会根据应用程序的依赖和配置情况,自动配置应用程序所需的各种组件和功能。例如,如果我们引入了spring-boot-starter-web依赖,Spring Boot会自动配置内置的Web服务器、Spring MVC框架等。 7. Spring Boot如何处理多环境配置? Spring Boot提供了多环境配置文件的支持,可以通过application-{profile}.properties或application-{profile}.yml文件来定义不同环境下的配置信息。其中,{profile}可以是开发、测试、生产等环境标识。 8. Spring Boot如何实现数据库访问? Spring Boot提供了Spring Data模块来简化数据库访问。我们可以使用Spring Data JPA、Spring Data MongoDB、Spring Data Redis等模块来访问不同类型的数据库。 9. Spring Boot如何集成Swagger? 我们可以使用springfox-swagger2和springfox-swagger-ui两个依赖来集成Swagger。其中,springfox-swagger2用于生成Swagger API文档,springfox-swagger-ui用于提供Swagger API文档的可视化界面。 10. 那些常见的Spring Boot注解? Spring Boot中常用的注解包括: - @SpringBootApplication:标识一个Spring Boot应用程序的入口类 - @RestController:标识一个Controller类,其中的方法都返回JSON数据 - @RequestMapping:用于映射请求路径和处理方法 - @Autowired:用于自动注入依赖 - @Value:用于注入配置文件中的属性值 - @Transactional:标识一个事务方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值