Q:
如何使用Spring Boot实现异常处理?
SpringControllerAdvice提供了一种使用处理异常的非常有用的方法。通过实现一个 ControllerAdvice类,来处理控制器类抛出的所有异常。
Q:
如何重新加载 Spring Boot上的更改,而无需重新启动服务器?
使用DEV工具来实现。
通过这种依赖关系,可以节省任何更改,嵌入式 tomcat将重新启动。
使用Spring Boot有一个开发工具Dev Tools模块,可以重新加载 Spring Boot上的更改,而无需重新启动服务器。消除每次手动部署更改的需要。Spring Boot在发布它的第一个版本时没有这个功能。该模块将在生产环境中被禁用。它还提供H2数据库控制台以更好地测试应用程序。
Q:
Spring Boot中的监视器是什么?
Spring boot actuatorspring是启动框架中的重要功能之一。Spring boot监视器可访问生产环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为 http url rest访问的REST端点来检查状态。
Q:
如何在自定义端口上运行 Spring Boot应用程序?
在 application.properties中指定端口serverport=8090。
Q:
Spring Boot监听器流程?
1、通过app.addListeners注册进入
2、初始化一个SpringApplicationRunListeners进行处理
3、从spring.factories中读取监听器处理类EventPublishingRunListener
4、通过createSpringFactoriesInstances创建监听器处理类实例
5、调用监听器listeners.starting()的方法来启动。
6、底层把事件处理交给线程池去处理
Q:
Spring Boot初始化环境变量流程?
1、调用prepareEnvironment方法去设置环境变量
2、接下来有三个方法getOrCreateEnvironment,configureEnvironment,environmentPrepared
3、getOrCreateEnvironment去初始化系统环境变量
4、configureEnvironment去初始化命令行参数
5、environmentPrepared当广播到来的时候调用onApplicationEnvironmentPreparedEvent方法去使用postProcessEnvironment方法load yml和properties变量
Q:
Spring Boot扫描流程?
1、调用run方法中的refreshContext方法
2、用AbstractApplicationContext中的refresh方法
3、委托给invokeBeanFactoryPostProcessors去处理调用链
4、其中一个方法postProcessBeanDefinitionRegistry会去调用processConfigBeanDefinitions解析beandefinitions
5、在processConfigBeanDefinitions中有一个parse方法,其中有componentScanParser.parse的方法,这个方法会扫描当前路径下所有Component组件
Q:
如何在 Spring Boot中禁用 Actuator端点安全性?
默认情况下,所有敏感的HTTP端点都是安全的,只有具有 http ACTUATOR角色的用户才能访问它们。安全性是使用标准的 httpservletrequest. isuserinrole…isusernrole方法实施的。可以使用 management. security. enabled= false来禁用安全性。只有在执行机构端点在防火墙后访问时,才建议禁用安全性。
Q:
如何实现 Spring Boot应用程序的安全性?
使用 spring–startersecurityboot–依赖项,并且必须添加安全配置。配置类将必须扩展 WebSecurityConfigurerAdapter并覆盖其方法。
Q:
什么是 Spring Batch?
Spring Boot Batch提供可重用的函数,这些函数在处理大量记录时非常重要;包括日志/跟踪,事务管理,作业处理统计信息,作业重新启动,跳过和资源管理。它还提供了更先进的技术服务和功能,通过优化和分区技术,可以实现极高批量和高性能批处理作业。简单以及复杂的大批量批处理作业可以高度可扩展的方式利用框架处理重要大量的信息。