这篇文章收集了一些spring面试真题给大家参考,需要的可以收藏一下,后续还会增加:
SpringBoot 和 SpringCloud 的区别是什么?
Spring Boot 是一个快速创建独立、基于 Spring 框架的、生产级别的应用程序的工具,它能够简化 Spring 应用程序的初始搭建以及开发过程。Spring Cloud 则是为构建基于微服务体系结构的云应用程序和服务提供了一套技术栈。
具体来说,Spring Boot 和 Spring Cloud 的区别如下:
1. 功能不同:Spring Boot 是一个快速构建 Spring 应用程序的工具,可以让开发者快速集成 Spring 的各种组件,并提供了自动配置机制;而 Spring Cloud 则是一套用于构建云原生应用的框架,主要用于实现服务注册、服务发现、配置管理等功能,支持多种服务治理方案。
2. 意义不同:Spring Boot 更多地关注于应用程序的快速搭建和开发过程,并考虑了应用程序的部署和发布;而 Spring Cloud 更多地关注于应用程序在分布式环境下的构建和运行,涵盖了更多的分布式系统的业务方面的需求和解决方案。
3. 目标不同:Spring Boot 的目标是减少开发者的配置工作,使开发者专注于业务逻辑的开发;而 Spring Cloud 的目标是简化分布式系统的开发和管理,为开发者提供更好的微服务治理方案,提升系统的可伸缩性和可维护性。
4. 依赖性不同:Spring Boot 可以在应用程序一开始的时候就自动配置好一些常用的组件,比如 JDBC、JPA、Thymeleaf、Web 等;而 Spring Cloud 则是基于 Spring Boot 的,在使用 Spring Cloud 的时候需要依赖 Spring Boot,并结合 Spring Cloud 的相关组件来搭建微服务体系结构。
综上所述,Spring Boot 和 Spring Cloud 分别适用于不同的场景和应用程序构建需求,开发者需要根据实际需求来选择使用。
Springboot 的核心注解有哪些?
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。 @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源 自动配置功能: @SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class })。
@ComponentScan:Spring组件扫描。
SpringBoot 自动配置原理是什么?
1.启动时通过寻找依赖jar的META-INF下的spring.factory找到自动配置类
2.筛选出需要加载的配置类
3自动配置上面会有条件注解,根据条件判断是否起作用。
4在配置里面定义具体的配置,@bean注解。这些具体的bean,就是各个默认配置。
Springboot 中怎么区分 Jpa 和 mybties 使用场景?
jpa是面向oo的框架,hql本质是一种oql,意思就是通过对象操作即可生成所需的dml,但是对于性能要求比较高的场景所生成的sql效果并不理想,需要定制化调优,这个时候就适合使用mybties了,他的动态sql特性可以最大程度的利用db原生特性。
所以你会发现在一些ddd的框架里会实现cqrs的理念,写是一个orm,读是一个orm,这样既可以保持对象领域建模的优势,又可以实现高性能的查询业务,一举两得。