springboot面试题

2023-11-01

springboot常见面试题

https://blog.csdn.net/weixin_44772609/article/details/115106450

常见面试题

  1. 谈谈你对Spring Boot的理解?

    SpringBoot主要用来简化使用Spring的难度和繁重的XML配置,它是Spring组件的一站式解决方案,采取了习惯优于配置的方法。通过.properties或者.yml文件替代了Spring繁杂的XML配置文件,同时支持@ImportResource注解加载XML配置。Spring Boot还提供了嵌入式HTTP服务器、命令行接口工具、多种插件等等,使得应用程序的测试和开发简单起来。
    
  2. 为什么需要Spring Boot?

    Spring Boot 优点非常多,如:独立运行、简化配置、自动配置和无需部署war文件等等
    
  3. 说出Spring Boot 的优点

    简化开发,提高整体生产力
    Spring Boot 使用 JavaConfig 有助于避免使用 XML,同时避免大量的Maven导入和各种版本冲突
    Spring Boot 引导的应用程序可以很容易地与 Spring 生态系统集成,如Spring JDBC、Spring ORM、Spring Data、Spring Security等等
    Spring Boot 应用程序提供嵌入式HTTP服务器,如Tomcat和Jetty,可以轻松地开发和测试web应用程序。
    Spring Boot 提供命令行接口工具,用于开发和测试应用程序
    Spring Boot 提供了多种插件,可以使用内置Maven工具开发和测试 应用程序
    Spring Boot 没有单独的 Web 服务器需要,这意味着不再需要启动 Tomcat或其他任何东西
    
  4. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

    Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。
    application 配置文件主要用于 Spring Boot 项目的自动化配置。
    bootstrap 配置文件有三个应用场景。
    使用Spring Cloud Config配置中心时,需要在 bootstrap 配置文件中添加连接到配置中心的配置属性,来加载外部配置中心的配置信息;
    一些固定的不能被覆盖的属性;
    一些加密或解密的场景;
    
  5. Spring Boot 的配置文件有哪几种格式?它们有什么区别?

    主要有.properties 和 .yml格式,它们的区别主要是书写格式不同。另外,.yml 格式不支持 @PropertySource 注解导入配置。
    
  6. 开启SpringBoot特性有哪几种方式?

    继承spring-boot-starter-parent项目
    导入spring-boot-dependencies项目依赖
    
  7. 什么是Spring Boot Starter?

    Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,可以一站式集成 Spring 和其他技术,而不需要到处找示例代码和依赖包。Spring Boot Starter的工作原理是:Spring Boot 在启动时扫描项目所依赖的JAR包,寻找包含spring.factories文件的JAR包,根据spring.factories配置加载AutoConfigure类,根据 @Conditional注解的条件,进行自动配置并将Bean注入Spring Context
    
  8. Spring Boot 有哪几种读取配置的方式?

    使用@Value注解加载单个属性值
    使用@ConfigurationProperties注解可以加载一组属性的值,针对于要加载的属性过多的情况,比@Value注解更加简洁
    
  9. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?

    Spring Boot 支持 Java Util Logging, Log4j2, Logback 作为日志框架,如果使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架,推荐的日志框架是Log4j2。
    
  10. Spring Boot 可以兼容老 Spring 项目吗?

    可以兼容,使用 @ImportResource 注解导入老 Spring 项目配置文件。
    
  11. 保护 Spring Boot 应用有哪些方法?

    在生产中使用HTTPS
    使用Snyk检查依赖关系
    升级到最新版本
    启用CSRF保护
    使用内容安全策略防止XSS攻击
    
  12. 什么是 JavaConfig?

    JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯 Java 方法,有助于避免使用 XML 配置。
    
  13. (Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的)介绍一下 @SpringBootApplication 注解

    Spring Boot 的核心注解是@SpringBootApplication,它也是启动类使用的注解,主要包含了 3 个注解:
    @SpringBootConfiguration:它组合了 @Configuration 注解,实现配置文件的功能。
    @EnableAutoConfiguration:具有打开自动配置的功能,也可以关闭某个自动配置的选项。
    @ComponentScan:用于Spring组件扫描。
    
  14. Spring Boot 自动配置原理是什么?

    @EnableAutoConfiguration注解、 @Configuration注解和 @ConditionalOnClass注解组成了Spring Boot自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个类去自动配置。具体是通过maven读取每个starter中的spring.factories文件,该文件配置了所有需要被创建在spring容器中的bean。
    
  15. 你如何理解 Spring Boot 配置加载顺序?

    Spring Boot配置加载顺序优先级是:propertiese文件、YAML文件、系统环境变量、命令行参数。
    
  16. Spring Boot支持哪些嵌入式Web容器?

    Spring Boot支持的嵌入式servlet容器有: Tomcat、Jetty、Undertow。
    
  17. 什么是YAML?

    YAML 是一种可读的数据序列化语言,它通常用于配置文件。
    
  18. YAML配置的优势在哪里 ?

    配置有序
    支持数组,数组中的元素可以是基本数据类型或者对象
    简洁方便
    
  19. Spring Boot 是否可以使用 XML 配置 ?

    Spring Boot 推荐使用 Java 配置同时支持 XML 配置,通过 @ImportResource 注解加载 XML 配置。
    
  20. application.properties和bootstrap.properties有何区别 ?

    bootstrap比 applicaton 优先加载,配置在应用程序上下文的引导阶段生效, 而且boostrap 里面的属性不能被覆盖;
    application用于 spring boot 项目的自动化配置。
    
  21. 什么是 Spring Profiles?

    Spring Profiles 允许用户根据配置文件(dev,prod,test等等)来注册 bean。当应用程序在开发环境中运行时,只有某些 bean 可以加载,而在生产环境中,某些其他 bean 也可以加载。比如要求 Swagger 文档仅适用于测试环境,并且禁用所有其他文档,可以使用配置文件来完成。
    
  22. 如何在自定义端口上运行 Spring Boot 应用程序

    可以在 application.properties 配置文件中指定端口,比如server.port = 8090
    
  23. 如何实现 Spring Boot 应用程序的安全性?

    为了实现 Spring Boot 的安全性,可以使用 spring-boot-starter-security 依赖,添加安全配置和重写WebSecurityConfigurerAdapter 配置类的方法。
    
  24. 什么是 WebSocket?

    WebSocket 是一种计算机通信协议,通过单个 TCP 连接提供全双工通信信道。
    WebSocket 是双向的 ,使用 WebSocket 客户端或服务器可以实现消息发送。
    WebSocket 是全双工的 ,客户端和服务器通信是相互独立的。
    WebScoket 使用单个 TCP 连接 ,与http 相比,WebSocket 消息数据交换要轻得多。
    
  25. Spring Boot 中的监视器是什么?(什么是Spring Boot Actuator)?

    Spring boot actuator 是 spring 启动框架中的重要功能之一,Spring boot 监视器可以访问生产环境中正在运行的应用程序的当前状态。监视器模块公开了一组可直接作为 HTTP URL 访问的 REST 端点来检查状态。
    
  26. 如何在 Spring Boot 中禁用 Actuator 端点安全性?

    默认情况下,所有敏感的 HTTP 端点都是安全的,只有具有 ACTUATOR 角色的用户才能访问它们。
    安全性是使用标准的 HttpServletRequest.isUserInRole 方法实施的,可以用来禁用安全性。
    只有在执行机构端点在防火墙后访问时,才建议禁用安全性。
    
  27. 什么是 CSRF 攻击?

    CSRF 英文全称是 Cross-site request forgery,所以又称为“跨站请求伪造”,是指黑客引诱用户打开黑客的网站,在黑客的网站中,利用用户的登录状态发起的跨站请求。简单来讲,CSRF 攻击就是黑客利用了用户的登录状态,并通过第三方的站点来做一些坏事
    
    通常当用户打开了黑客的页面后,黑客有三种方式去实施 CSRF 攻击。
    
  28. 如何使用 Spring Boot 实现异常处理?

    Spring 通过使用 @ControllerAdvice 注解处理异常,实现一个ControllerAdvice 类来处理控制器类抛出的所有异常。
    
  29. 如何监视所有 Spring Boot 微服务?

    Spring Boot 提供监视器端点以监控各个微服务的度量。这些端点对于获取有关应用程序的信息(如它们是否已启动) 以及它们的组件( 如数据库等) 是否正常运行很有帮助。
    使用 Micrometer、Prometheus 和 Grafana 为 Spring Boot 微服务构建全面的监控能力
    
  30. 运行 Spring Boot 有哪几种方式?

    用命令打包或者放到容器中运行
    用 Maven 插件运行
    直接执行 main 方法运行
    

自动配置

  1. SpringBoot自动配置的原理是什么?
SpringBoot 项目的启动注解是:@SpringBootApplication,其实它就是由下面三个注解组成的:
1、 @Configuration
2、 @ComponentScan
3、 @EnableAutoConfiguration

其中 @EnableAutoConfiguration 是实现自动配置的入口,该注解又通过 @Import 注解导入了AutoConfigurationImportSelector,在该类中加载 META-INF/spring.factories 的配置信息。然后筛选出以 EnableAutoConfiguration 为 key 的数据,加载到 IOC 容器中,实现自动配置功能!
  1. SpringBoot 配置加载顺序?
1、 properties文件 2、YAML文件 3、系统环境变量 4、命令行参数

starter

SpringBoot 常用的 Starter 有哪些?

1、 spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持
2、 spring-boot-starter-data-jpa 数据库支持
3、 spring-boot-starter-data-Redis Redis数据库支持
4、 spring-boot-starter-data-solr solr支持
5、 mybatis-spring-boot-starter 第三方的mybatis集成starter
自定义的starter(如果自己开发过就可以说出来)

SpringBoot Starter 的工作原理是什么?

首先,这个 Starter 并非什么新的技术点,基本上还是基于 Spring 已有功能来实现的。首先它提供了一个自动化配置类,一般命名为 XXXAutoConfiguration ,在这个配置类中通过条件注解来决定一个配置是否生效(条件注解就是 Spring 中原本就有的),然后它还会提供一系列的默认配置,也允许开发者根据实际情况自定义相关配置,然后通过类型安全的属性注入将这些配置属性注入进来,新注入的属性会代替掉默认属性。正因为如此,很多第三方框架,我们只需要引入依赖就可以直接使用了。当然,开发者也可以自定义 Starter

SpringBoot 中的 starter 到底是什么 ?

Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其他技术,而不需要到处找示例代码和依赖包。如你想使用 Spring JPA 访问数据库,只要加入 spring-boot-starter-data-jpa 启动器依赖就能使用了。

能否举一个例子来解释更多 Starters 的内容?

让我们来思考一个 Stater 的例子 -SpringBoot Stater Web。

如果你想开发一个 web 应用程序或者是公开 REST 服务的应用程序。SpringBoot Start Web 是首选。让我们使用 Spring Initializr 创建一个 SpringBoot Start Web 的快速项目。
依赖项可以被分为:
1、 Spring - core,beans,context,aop
2、 Web MVC - (Spring MVC)
3、 Jackson - for JSON Binding
4、 Validation - Hibernate,Validation API
5、 Enbedded Servlet Container - Tomcat
6、 Logging - logback,slf4j

任何经典的 Web 应用程序都会使用所有这些依赖项。SpringBoot Starter Web 预先打包了这些依赖项。
作为一个开发者,我不需要再担心这些依赖项和它们的兼容版本。

spring initializer

  1. 在 Spring Initializer 中,如何改变一个项目的包名字?
好消息是你可以定制它。点击链接“转到完整版本”。你可以配置你想要修改的包名称!
  1. 什么是 Swagger?你用 SpringBoot 实现了它吗?
Swagger 广泛用于可视化 API,使用 Swagger UI 为前端开发人员提供在线沙箱。Swagger 是用于生成 RESTful Web 服务的可视化表示的工具,规范和完整框架实现。它使文档能够以与服务器相同的速度更新。当通过 wagger 正确定义时,消费者可以使用最少量的实现逻辑来理解远程服务并与其进行交互。因此,Swagger 消除了调用服务时的猜测。
  1. 什么是Spring Initializer?
Spring initializr 是Spring 官方提供的一个用来初始化一个Spring boot 项目的工具。
在idea中,直接 File->New->Project, 在左侧就能看到Spring initializr, 点击Next 就可以选择组件。 

集成其它框架

  1. SpringBoot集成mybatis的过程
pom中导入jdbc连接池依赖,application.properties中有database的配置项,有mapper的注解来扫描sql语句
  1. 如何集成SpringBoot和ActiveMQ?
对于集成 Spring Boot 和 ActiveMQ,
我们使用spring-boot-starter-activemq依赖关系。
它只需要很少的配置,并且不需要样板代码。
  1. spring boot 核心的两个配置文件
1、 bootstrap (.yml 或.properties):boostrap 由父 ApplicationContext 加载的,比 applicaton 优先加载,配置在应用程序上下文的引导阶段生效。一般来说我们在 Spring Cloud Config 或者 Nacos 中会用到它。且 boostrap 里面的属性不能被覆盖;
2、 application (. yml 或者 . properties):由ApplicatonContext 加载,用于 spring boot 项目的自动化配置。
  1. 如何在 SpringBoot 启动的时候运行一些特定的代码?
可以实现接口 ApplicationRunner 或者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个 run 方法
  1. 什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
思考一下在你的虚拟机上部署应用程序需要些什么。
第一步:安装 Java
第二部:安装 Web 或者是应用程序的服务器(Tomat/Wbesphere/Weblogic 等等)
第三部:部署应用程序 war 包
如果我们想简化这些步骤,应该如何做呢?
让我们来思考如何使服务器成为应用程序的一部分?
你只需要一个安装了 Java 的虚拟机,就可以直接在上面部署应用程序了,
是不是很爽?
这个想法是嵌入式服务器的起源。
当我们创建一个可以部署的应用程序的时候,我们将会把服务器(例如,tomcat)嵌入到可部署的服务器中。
例如,对于一个 SpringBoot 应用程序来说,你可以生成一个包含 Embedded Tomcat 的应用程序 jar。你就可以像运行正常 Java 应用程序一样来运行 web 应用程序了。
嵌入式服务器就是我们的可执行单元包含服务器的二进制文件(例如,tomcat.jar)。
  1. 什么是FreeMarker模板?
FreeMarker是一个基于Java的模板引擎,最初专注于使用MVC软件架构进行动态网页生成。使用Freemarker的主要优点是表示层和业务层的完全分离。程序员可以处理应用程序代码,而设计人员可以处理html页面设计。最后使用freemarker可以将这些结合起来,给出最终的输出页面。
  1. SpringBoot 2.X 有什么新特性?与 1.X 有什么区别?
(1) 第三方类库的依赖升级
2.x 对第三方类库升级了所有能升级的稳定版本, 我列举出几个

Spring Framework 5+
Tomcat 8.5+
Flyway 5+
Hibernate 5.2+
Thymeleaf 3+
依赖 JDK 版本升级
(2) 2.x 至少需要 JDK 8 的支持, 2.x 里面的许多方法应用了 JDK 8 的许多高级新特性, 所以你要升级到 2.0 版本, 先确认你的应用必须兼容 JDK 8, 另外, 2.x 开始了对 JDK 9 的支持

(3) 配置属性绑定区别
在 1.x 中, 配置绑定是通过注解 @ConfigurationProperties 来注入到Spring 环境变量中的。
在 2.x 中, 配置绑定功能有了些的改造, 在调整了 1.x 中许多不一致地方之外, 还提供了独立于注解之外的 API 来装配配置属性。 并增加了属性来源, 这样你就能知道这些属性是从哪个配置文件中加载进来的

springboot的扫描与启动与使用

  1. springboot扫描流程?
1、 调用run方法中的refreshContext方法
2、 用AbstractApplicationContext中的refresh方法
3、 委托给invokeBeanFactoryPostProcessors去处理调用链
4、 其中一个方法postProcessBeanDefinitionRegistry会去调用processConfigBeanDefinitions解析beandefinitions
5、 在processConfigBeanDefinitions中有一个parse方法,其中有componentScanParser.parse的方法,这个方法会扫描当前路径下所有Component组件
  1. 如何重新加载SpringBoot上的更改,而无需重新启动服务器?
这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。

SpringBoot有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。

开发人员可以重新加载SpringBoot上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。SpringBoot在发布它的第一个版本时没有这个功能。

这是开发人员最需要的功能。DevTools模块完全满足开发人员的需求。该模块将在生产环境中被禁用。它还提供H2数据库控制台以更好地测试应用程序。
  1. spring boot初始化环境变量流程?
1、 调用prepareEnvironment方法去设置环境变量
2、 接下来有三个方法getOrCreateEnvironment,configureEnvironment,environmentPrepared
3、 getOrCreateEnvironment去初始化系统环境变量
4、 configureEnvironment去初始化命令行参数
5、 environmentPrepared当广播到来的时候调用onApplicationEnvironmentPreparedEvent方法去使用postProcessEnvironment方法load yml和properties变量
  1. 创建一个 SpringBoot Project 的最简单的方法是什么?
Spring Initializr是启动 SpringBoot Projects 的一个很好的工具。
我们需要做一下几步:
1、 登录 Spring Initializr,按照以下方式进行选择:
2、 选择 com.in28minutes.SpringBoot 为组
3、 选择 studet-services 为组件
4、 选择下面的依赖项
Web
Actuator
DevTools
5、 点击生 GenerateProject
6、 将项目导入 Eclipse。文件 - 导入 - 现有的 Maven 项目
  1. SpringBoot 中如何解决跨域问题 ?
跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他类型的请求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过 (CORS,Cross-origin resource sharing) 来解决跨域问题。这种解决方案并非 SpringBoot 特有的,在传统的 SSM 框架中,就可以通过 CORS 来解决跨域问题,只不过之前我们是在 XML 文件中配置 CORS ,现在可以通过实现WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题。

@Configuration

public class CorsConfig implements WebMvcConfigurer {

@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**")
            .allowedOrigins("*")
            .allowCredentials(true)
            .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
            .maxAge(3600);
	}
}
  1. SpringBoot如何配置log4j?
在引用log4j之前,需要先排除项目创建时候带的日志,因为那个是Logback,然后再引入log4j的依赖,引入依赖之后,去src/main/resources目录下的log4j-spring.properties配置文件,就可以开始对应用的日志进行配置使用。
  1. 如何在不使用BasePACKAGE过滤器的情况下排除程序包?
过滤程序包的方法不尽相同。但是弹簧启动提供了一个更复杂的选项,可以在不接触组件扫描的情况下实现这一点。在使用注释@ SpringBootApplication时,可以使用排除属性。请参阅下面的代码片段:
@SpringBootApplication(exclude= {Employee.class})
public class FooAppConfiguration {}
  1. 微服务中如何实现 session 共享 ?

https://blog.csdn.net/qq_43842093/article/details/120836732

有四种方案:
使用Redis做缓存session的统一缓存
  1. 前后端分离,如何维护接口文档 ?
在 SpringBoot 中,这个问题常见的解决方案是 Swagger ,使用 Swagger 我们可以快速生成一个接口文档网站,接口一旦发生变化,文档就会自动更新,所有开发工程师访问这一个在线网站就可以获取到最新的接口文档,非常方便。
  1. 什么是 Spring Data?
Spring Data 的使命是在保证底层数据存储特殊性的前提下,为数据访问提供一个熟悉的,一致性的,基于 Spring 的编程模型。这使得使用数据访问技术,关系数据库和非关系数据库,map-reduce 框架以及基于云的数据服务变得很容易。
为了让它更简单一些,Spring Data 提供了不受底层数据源限制的 Abstractions 接口。
你可以定义一简单的库,用来插入,更新,删除和检索代办事项,而不需要编写大量的代码。
  1. SpringBoot如何实现打包
进入项目目录在控制台输入mvn clean package,clean是清空已存在的项目包,package进行打包或者点击左边选项栏中的Mavne,先点击clean在点击package
  1. 使用了哪些 starter maven 依赖项?
使用了下面的一些依赖项 
spring-boot-starter-activemq
spring-boot-starter-security
这有助于增加更少的依赖关系,并减少版本的冲突。
  1. 如何在 SpringBoot 中添加通用的 JS 代码?
在源文件夹下,创建一个名为 static 的文件夹。然后,你可以把你的静态的内容放在这里面。

例如,myapp.js 的路径是 resources\static\js\myapp.js

你可以参考它在 jsp 中的使用方法

<csript src="/js/myapp.js"></csript>
错误:HAL browser gives me unauthorized error - Full authenticaition is required to access this resource.

该如何来修复这个错误呢?

{
 &#xA0;"timestamp": 1488656019562,
 &#xA0;"status": 401,
 &#xA0;"error": "Unauthorized",
 &#xA0;"message": "Full authentication is required to access this resource.",
 &#xA0;"path": "/beans"
}
两种方法:

方法 1:关闭安全验证
application.properties

management.security.enabled:FALSE
方法二:在日志中搜索密码并传递至请求标头中
  1. spring-boot-starter-parent 有什么用 ?

https://blog.csdn.net/qq_28834355/article/details/108767656

这是 Spring Boot 的父级依赖,这样当前的项目就是 Spring Boot 项目了。spring-boot-starter-parent 是一个特殊的 starter ,它用来提供相关的 Maven 默认依赖。

使用它之后,常用的包依赖可以省去 version 标签,当我们搭建web应用的时候,可以像下面这样添加spring-boot-starter-web依赖:

<!-- Quartz定时任务 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
  1. SpringBoot、Spring MVC 和 Spring 有什么区别?
1、 Spring框架就像一个家族,有众多衍生产品,例如boot、mvc、jpa等等。但他们的基础都是Spring的ioc、aop。ioc提供了依赖注入的容器,aop解决了面向横切面编程,然后在此两者的基础上实现了其它延伸产品的高级功能;
2、 springMVC是基于Servlet的一个MVC框架主要解决WEB开发的问题;
3、 为了简化开发的使用,从而创造性地推出了SpringBoot框架,默认优于配置
  1. SpringBoot 有哪几种读取配置的方式?
SpringBoot 可以通过 @PropertySource,@Value,@Environment, @ConfigurationProperties 来绑定变量

数据库和事物

  1. 如何使用SpringBoot实现分页和排序?
使用SpringBoot实现分页非常简单。使用Spring Data-JPA可以实现将可分页的传递给存储库方法。
  1. SpringBoot多数据源事务如何管理
第一种方式是在service层的@TransactionManager中使用transactionManager指定DataSourceConfig中配置的事务
第二种是使用jta-atomikos实现分布式事务管理
  1. SpringBoot多数据源拆分的思路
先在properties配置文件中配置两个数据源,创建分包mapper,使用@ConfigurationProperties读取properties中的配置,使用@MapperScan注册到对应的mapper包中
  1. Spring Cache 三种常用的缓存注解和意义?
1、 @Cacheable ,用来声明方法是可缓存,将结果存储到缓存中以便后续使用相同参数调用时不需执行实际的方法,直接从缓存中取值。
2、 @CachePut,使用 @CachePut 标注的方法在执行前,不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。
3、 @CacheEvict,是用来标注在需要清除缓存元素的方法或类上的,当标记在一个类上时表示其中所有的方法的执行都会触发缓存的清除操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot面试题 的相关文章

随机推荐

  • Ceph入门到静态-deep scrub 深度清理处理

    9 6 洗刷 REPORT DOCUMENTATION BUG 除了为对象创建多个副本外 Ceph 还可通过洗刷归置组来确保数据完整性 请参见第 1 3 2 节 归置组 了解有关归置组的详细信息 Ceph 的洗刷类似于在对象存储层运行 fs
  • 云计算的基础设施服务

    云计算 企业实施手册 中将云计算的基础设施即服务划分为3个类别 服务器服务 存储服务和网络连接服务 服务提供商可能会提供虚拟服务器实例 在这些实例上 用户可以安装和运行一个自定义的映像 持久性的存储是一种单独的服务 客户可以单独购买 最后
  • 【C语言】程序环境和预处理

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 一 编程常见的错误 二 程序的翻译环境和运行环境 1 翻译环境
  • 文字、字母以及数字的换行不换行问题总结

    实现页面的文字 字母的展示效果的时候 相信大家都会遇到过一些这样的要求 文字不能换行 要强制文字一行展示 或者是 字母不会自动换行 需要实现可以自动换行断句 等等诸如此类的要求 现在就这个文字 字母换不换行的问题 说说这三个css属性的巧妙
  • 产品冷思考:大而全or小而美如何选择?

    顾城诗曰 黑夜给了我黑色的眼睛 我却用它寻找光明 我喜欢黑夜 因为此时远离尘世的嘈杂 追求内心的宁静 躲进黑暗的角落里才真正的洞察内心 作为冒牌的产品经理 褪去一天的疲惫 没有繁琐的事务 不再面红耳赤的争论 不用违心的妥协 吹着凉风 冷静的
  • 请你说一下行级锁和表级锁的区别(或表级锁和行级锁的区别)

    本旨在学习记录 内容源自JavaGuide 作者在此基础上进行补充说明 整理论述 使其能以一种更为逻辑地清晰地方式表达出 请你说一下行级锁和表级锁的区别 的理解 更多适应于java面试回答 亦可作对请你说一下自己对行级锁和表级锁的简要了解
  • socket套接字与TCP连接

    如何标识一个TCP连接 对于TCP协议 成功建立一个新的链接 需要保证该TCPl连接中四个要素组合体的唯一性 客户端的IP 客户端的port 服务器端的IP 服务器端的port 服务器端的同一个IP和port 可以和同一个客户端的多个不同端
  • Python 数据处理之柱状图--Echarts

    一 读取数据并写入excel coding utf 8 import xlsxwriter def add series i j len data 0 1 chart col add series 这里的sheet1是默认的值 因为我们在新
  • 关于谷歌chrome浏览器以及360极速浏览器摄像头无法使用(摄像头权限)问题。

    问题描述 关于谷歌chrome浏览器以及360极速浏览器摄像头无法使用 摄像头权限 问题 在疫情期间 很多企业无法开展线下笔试 大多采用线上笔试的方法 当下两个主流的笔试网站 牛客网以及赛码网 企业会在这两个网站发布考试链接 通常牛客网可以
  • MySQL优化派生表_sql优化-派生表与inner-join

    首先来说明一下派生表 外部的表查询的结果集是从子查询中生成的 如下形式 select from select dt 如上形式中括号中的查询的结果作为外面select语句的查询源 派生表必须指定别名 因此后面的dt必须指定 派生表和临时表差不
  • PAP认证和CHAP认证概述

    http network 51cto com art 201109 291563 htm PAP认证过程非常简单 是二次握手机制 而CHAP认证过程比较复杂 是三次握手机制 下面就让我们来看一下两种具体的认证过程 AD 一 PAP认证协议
  • opencv-python下载地址

    https pypi org project opencv python history
  • Python3.x安装Pandas教程

    python3 x 安装pandas总是会出现一些乱七八糟的问题 那现在就给你们讲述一种超级简单的安装方法 非常简单 1 检查自己的python版本 我的是python3 4 32位的 2 https www lfd uci edu goh
  • Jupyter Notebook修改工作区默认路径

    Jupyter notebook启动后 默认的工作空间是当前用户目录 C Users 用户名 为了方便对文档进行管理 往往需要自行设置工作空间 下面是默认工作空间的设置方法 一 修改属性中目标位置 右击 jupyter notebook 快
  • Java JDBC(JdbcTemplate)对表的增删改查

    Java JDBC JdbcTemplate 对表的增删改查 先看 JDBCUtils 再看 JdbcTemplate简单使用 然后增删改查 package domain import JdU JDBCUtils import org ju
  • Unity3d 周分享(22期 2019.8.30 )

    选自过去1 2周 自己所看到外文内容 https twitter com unity3d 和各种其他博客来源吧 早就有了 抱歉才发 1 Unity Transform 性能优化摘要 https qiita com sator imaging
  • linux下搭建RabbitMQ操作

    引言 你是否遇到过两个 多个 系统间需要通过定时任务来同步某些数据 你是否在为异构系统的不同进程间相互调用 通讯的问题而苦恼 挣扎 如果是 那么恭喜你 消息服务让你可以很轻松地解决这些问题 消息服务擅长于解决多系统 异构系统间的数据交换 消
  • php isset 和 array_key_exists 检查数组中是否存在某值的区别

    原文地址 http ivhong com p 110 ivhong com 是我的博客主址 先看看下面这段代码 你觉得结果是什么呢 定义一个数组 gt 5 4 arr a gt null var dump isset arr array k
  • tilemap45度地图的斜向限定判断办法

    前段时间使用cocos2d x做一个小游戏用到了tilmap 而且是45度的tilemap 在正常的坐标系里面一般都是直角坐标系 但是这个东西可以是斜的 要想使用45度的tilemap地图就要进行坐标系的转换 有空再写怎么转换 然后看一些用
  • springboot面试题

    springboot常见面试题 https blog csdn net weixin 44772609 article details 115106450 常见面试题 谈谈你对Spring Boot的理解 SpringBoot主要用来简化使