Spring Boot 相关面试题

问:什么是Swagger?你用Spring Boot实现了吗?
     A: 
Swagger广泛用于可视化API,而Swagger UI则为前端开发人员提供了在线沙箱。对于本教程,我们将使用Swagger 2规范的Springfox实现。Swagger是一个工具,规范和完整的框架实现,用于生成RESTful Web服务的可视化表示。它使文档能够以与服务器相同的速度更新。通过Swagger正确定义后,消费者可以使用最少量的实现逻辑来理解远程服务并与之交互。因此,Swagger消除了调用服务时的猜测。

Spring Boot + Swagger2 

问:什么是Spring Profiles?你如何使用Spring Boot实现它?
     A: 
Spring Profiles允许用户根据配置文件(dev,test,prod等)注册bean。因此,当应用程序在开发中运行时,只能加载某些bean,而在PRODUCTION中,可以加载某些其他bean。假设我们的要求是仅为QA环境启用Swagger文档,并为所有其他环境禁用。这可以使用“个人档案”完成。Spring Boot使得使用Profiles非常容易。
Spring Boot + profiles 

问:如何使用Spring Boot实现异常处理?
    答: 
Spring提供了一种使用ControllerAdvice处理异常的非常有用的方法。
我们将实现一个ControlerAdvice类,它将处理控制器类抛出的所有异常。
Spring Boot异常处理

问:什么是缓存?你有没有使用Spring Boot的任何缓存框架?
    答: 
缓存是本地内存的一个区域,它包含经常访问的数据的副本,否则这些数据的获取或计算成本很高。使用Hazelcast进行缓存。
Spring Boot + Hazelcast示例

问:什么是CSRF攻击?如何启用CSRF保护?
     答:
 CSRF代表跨站请求伪造。这是一种攻击,迫使最终用户在当前对其进行身份验证的Web应用程序上执行不需要的操作。CSRF攻击专门针对状态更改请求,而不是数据被盗,因为攻击者无法查看对伪造请求的响应。
Spring Boot Security - 启用CSRF保护 

问:如何使用Spring Boot使用表单登录身份验证?
  答:
Spring Boot表单安全登录Hello World示例 

问:何时使用WebSockets?如何使用Spring Boot实现它?
A:
WebSocket是一种计算机通信协议,通过单个TCP连接提供全双工通信通道。

  • WebSocket是双向的 -使用WebSocket客户端或服务器可以发起发送消息。
  • WebSocket是全双工 -客户端和服务器通信彼此独立。
  • 单个TCP连接 -初始连接使用HTTP,然后此连接升级到基于套接字的连接。然后,该单个连接用于所有未来的通信
  • Light -与http相比,WebSocket消息数据交换要轻得多。

Spring Boot + WebSockets示例

问:什么是AOP?如何在Spring Boot中使用它?
   答:
在软件开发过程中,跨越应用程序多个点的功能称为横切关注点。这些跨领域的关注点与应用程序的主要业务逻辑不同。因此,将这些横切关注点与业务逻辑分离是面向方面编程(AOP)的结果。
Spring Boot + AOP示例 0

最后

问:Spring Boot有哪些优点?
  答:
 Spring Boot的优点是

  • 减少开发,测试时间和精力。
  • 使用JavaConfig有助于避免使用XML。
  • 避免大量的maven导入和各种版本冲突。
  • 提供意见发展方法。
  • 通过提供默认值快速开始开发。
  • 不需要单独的Web服务器。这意味着您不再需要启动Tomcat,Glassfish或其他任何东西。
  • 需要较少的配置 - 因为没有web.xml文件。只需添加用@ Configuration注释的类,然后就可以添加用@ Bean注释的方法,Spring将自动加载对象并像往常一样管理它。您甚至可以将@Autowired添加到bean方法中,以使bean具有所需的依赖关系中的Spring autowire。
  • 基于环境的配置 - 使用这些属性,您可以将您正在使用的环境传递到应用程序:-Dspring.profiles.active = {enviornment}。然后,在加载主应用程序属性文件之后,Spring将在(application- {environment} .properties)加载后续应用程序属性文件。

 

 

 

你可能感兴趣的:(Java面试,Java)