前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot-面试核心概念

SpringBoot-面试核心概念

作者头像
用户10175992
发布2023-10-17 10:39:51
2750
发布2023-10-17 10:39:51
举报
文章被收录于专栏:辰远辰远
引言:

SpringBoot是企业级开发的整体整合解决方案,在现在企业项目开发中使用非常普遍。因此,SpringBoot已经成为Java 序员面试的必备知识点

1.什么是SpringBoot,Spring,SpringMVC以及它们的区别?

要点:

Spring是一个轻量级的企业级应用的容器,它最重要的特征是依赖注入和AOP。

SpringMVC是一个实现了MVC设计模式的框架,使用分离的方式开发Web应用。简化了Web应用程序的开发。

Spring和SpringMVC都需要大量的配置,Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,删去了繁重的配置,提供了各种启动器,使开发者能快速上手,搭建企业级应用。

 2.SpringBoot的核心注解有哪些?

要点:

启动类注解@SpringBootApplication,它包含三个注解:

   (1)@SpringBootConfiguration:

   (2)@Configuration 注解,实现配置文件的功能。

   (3)@EnableAutoConfiguration:打开自动配置的功能

   (4)@ComponentScan:Spring组件扫描

3.SpringBoot的Starter有哪些?

要点:

SpringBoot中的Starter相当于模块,它将模块所需的依赖整合起来并对模块内的Bean根据条件进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的包。一站式的集成Spring及其他技术。

spring-boot-starter-web  SpringMVC+内嵌的tomcat

spring-boot-starter-data-redis  整合Redis

spring-boot-starter-data-jpa 整合 Spring JPA + Hibernate

spring-boot-starter-test    集成测试

spring-boot-starter-security 整合SpringSecurity

mybatis-spring-boot-starter  整合MyBatis

4.SpringBoot的配置文件有哪些?

要点:

SpringBoot默认读取配置文件为application.properties或者是application.yml或者application.yaml(yaml/yml只是扩展名不同而已)。

yml/yaml文件是一种树形结构,可读性强,支持多种(python,go等)语言,支持中文,不支持使用@PropertySource("")注解。properties文件是一种key/value的形式,中文内容只能用unicode编码。相同的目录下有三个配置文件时,优先级properties>yaml>yml

5.SpringBoot的优点?

要点:

(1)快速创建独立运行的spring项目与主流框架集成

(2)使用嵌入式的servlet容器,应用无需打包成war包

(3)starters自动依赖与版本控制

(4)大量的自动配置,简化开发,也可修改默认值

6.SpringBoot的运行方式

要点:

(1)直接运行Main方法启动

(2)使用spring-boot-maven-plugin插件启动

(3)项目打包放到容器中运行

7.什么是JavaConfig

要点:

      传统的Spring一般都是基本xml配置的,Spring3.0新增了许多java config的注解。Spring JavaConfig是Spring社区的产品,它提供了配置Spring IoC容器的纯Java方法,即基于java配置的spring。常见注解有:

@Configuration 表示配置类

@Bean   等价于 <bean id="obj" class="..." />

@EnableWebMvc  等价于  <mvc:annotation-driven>

@ImportResource  等价于 <import resource="beans.xml">

@PropertySource    读取properties文件

JavaConfig为开发人员提供了一种纯Java方法来配置与XML配置概念相似的Spring容器。提供了一种类型安全的方法来配置Spring容器。可以按类型而不是按名称检索bean,而不需要任何强制转换。

8.SpringBoot 实现热部署有哪几种方式?

要点:

实际开发过程中,每次修改代码就得将项目重启,重新部署,这个过程需要花费大量的时间成本。为了提高重启效率,提出了热部署的概念。

    热部署的基本原理使用了两个ClassLoader(类加载器),一个ClassLoader加载那些不会改变的类(例如第三方jar包),另一个ClassLoader加载会改变的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相对少,所以实现了较快的重启时间。主要有两种实现方式:

(1)Spring Loaded:

Spring Loaded是一个用于在JVM运行时重新加载类文件更改的JVM代理,Spring Loaded允许你动态的新增、修改、删除某个方法、字段、构造方法,同样可以修改作用在类、方法等上的注解。

代码语言:javascript
复制
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <dependencies>
        <dependency>
           <groupId>org.springframework</groupId>                                                                                                                                                                                                                                                                                                           
           <artifactId>springloaded</artifactId>
           <version>1.2.6.RELEASE</version>        
       </dependency>
    </dependencies>
</plugin>

(2)Spring-boot-devtools
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>
9.SpringBoot自动配置的原理

要点:

     在SpringBoot的应用程序中,所有的运行都起源于@SpringBootApplication注解,它是一个组合注解,等同于以下三个注解:

@SpringBootConfiguration

@EnableAutoConfiguration

@ComponentScan

@EnableAutoConfiguration是关键(启用自动配置),内部实际上就去加载META-INF/spring.factories文件的信息,然后筛选出以EnableAutoConfiguration为key的数据,加载到IOC容器中,实现自动配置的功能。

10.Spring Boot 支持的日志框架有哪些?

要点:

     Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作为日志框架,如果使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言:
  • 1.什么是SpringBoot,Spring,SpringMVC以及它们的区别?
  •  2.SpringBoot的核心注解有哪些?
  • 3.SpringBoot的Starter有哪些?
  • 4.SpringBoot的配置文件有哪些?
  • 5.SpringBoot的优点?
  • 6.SpringBoot的运行方式
  • 7.什么是JavaConfig
  • 8.SpringBoot 实现热部署有哪几种方式?
  • 9.SpringBoot自动配置的原理
  • 10.Spring Boot 支持的日志框架有哪些?
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档