SpringBoot基础面试题

​1、什么是SpringBoot?

      SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。

      SpringBoot已经建立在现有的spring框架之上。使用spring启动,我们避免了之前我们必须做的所有样板代码和配置。因此,SpringBoot可以帮助我们以最少的工作量,更加健壮地使用现有的Spring功能。

2、SpringBoot有哪些优点?

      SpringBoot上手简单,实现了开箱即用。只需继承spring-boot-start-parent依赖,实现了版本的统一管理,避免了maven的各种版本冲突。此外,现在很多技术组件都提供了启动器,能更方便地集成。

3、SpringBoot运行项目的几种方式?

1)打包用命令或者放到容器中运行
      ①打成jar包,使用java -jar xxx.jar运行

      ②打成war包,放到tomcat里面运行

2)直接用maven插件运行 maven spring-boot:run

3)直接执行main方法运行

4、SpringBoot的核心注解是哪个?它主要由哪几个注解组成的?

      启动类上面的注解是@SpringBootApplication,它也是SpringBoot的核心注解,主要组合包含了以下3个注解:

①@SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能。

②EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:SpringBootApplication(exclude={DataSourceAutoConfiguration.class})

③ComponentScan:Spring组件扫描

5、SpringBoot自动配置的原理是什么?

    SpringBoot启动的时候通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中所有的自动配置类,并对其进行加载,而这些自动配置类的类名都是以AutoConfiguration结尾来命名的,它实际上就是一个javaConfig形式的Spring容器配置类,它们都有一个@EnableConfigurationPerperties的注解,通过这个注解启动XXXProperties命名的类去加载全局配置中的属性,如server.port,而XXXProperties通过@ConfigurationProperties注解将全局配置文件中的属性与自己的属性进行绑定。

6、@RestController和@Controller的区别

      共同点:①都是加在类级别上的 ②都可以处理http请求

      区 别:@RestController是@Controller和      @ResponseBody的结合体

7、SpringBoot的启动器有哪几种?

    基本启动器有4种:比如spring-boot-starter、spring-boot-starter-web、spring-boot-starter-aop

8、SpringBoot默认支持的日志框架有哪些?可以进行哪些设置?

SpringBoot支持Java Util Logging,Log4J2,Lockback作为日志框架,如果你使用Starters启动器,SpringBoot将使用Logback作为默认日志框架

9、SpringBoot的配置文件有哪几种格式?区别是什么?

      .properties和.yml,它们的区别主要是书写格式不同。yml采取的是缩进的格式 不支持@PerpertySource注解导入配置

10、SpringBoot需要独立的容器运行?

      SpringBoot不需要独立的容器就可以运行,因为在springboot工程发布的jar文件里已经包含了tomcat的jar文件。springboot运行的时候会创建tomcat对象,实现web服务功能。也可以将springboot发布成war文件,放到tomcat文件里面运行

11、SpringBoot如何配置log4j?

      在引用log4j之前,需要先排除项目创建时候带的日志,因为那个是Logback,然后再引入log4j的依赖,引入依赖之后,去src/main/resources目录下的log4j-spring.properties配置文件,就可以开始对应用的日志进行配置使用。

12、Spring、SpringBoot、SpringMVC的区别?

1)Spring框架就像一个家族,有众多衍生产品,例如boot、mvc、jpa等等。但他们的基础都是Spring的ioc、aop。ioc提供了依赖注入的容器,aop解决了面向横切面编程,然后在此两者的基础上实现了其它延伸产品的高级功能;

2)springMVC是基于Servlet的一个MVC框架主要解决WEB开发的问题;

3)为了简化开发的使用,从而创造性地推出了SpringBoot框架,默认优于配置

13、开启SpringBoot特性有哪几种方式?(创建springboot项目的两种方式)

①继承Spring-boot-start-parent项目

②导入Spring-boot-dependencies项目依赖

14、spring-boot-starter-parent有什么用?

      我们都知道,新建一个SpringBoot项目,默认都是由parent的,这个parent就是spring-boot-starter-parent,spring-boot-starter-parent主要有以下作用:

①定义了Java编译版本为1.8
②使用UTF-8格式编码
③继承自spring-boot-dependencies,这个里边定义了依赖的版本,也正是因为继承了这个依赖,所有我们在写依赖时才不需要写版本号。
④针对application.propertiess和application.yml的资源过滤,包括通过profile定义的不同环境的配置文件,例如application-dev.properties和application-dev.yml。

15、如何给静态变量赋值?

      springboot无法通过@Value给静态变量赋值

此时需要给当前类加@Component注解,通过set方法设置@Value注解加载set方法上,set方法的参数可以任意命名,不能同属性名,此后当前工具类下的静态方法可直接使用属性值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值