SpringBoot面试题

1.springboot中的核心启动主函数(main函数)有什么作用?用到哪些注解?注解有什么作用?

@SpringBootApplication
public class SpringBoot1Application {
public static void main(String[] args) {
SpringApplication.run(SpringBoot1Application.class, args);}
}

该主函数: 主要启动springboot框架.用于加载容器和Spring等默认组件.
用到核心注解: @SpringBootApplication . 作用:用于标识声明一个springboot框架容器.
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:

@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class})。
@ComponentScan:Spring组件扫描。

2.需要加载外部配置文件中的自定义属性,该如何实现?

需求⼀批量加载多个属性.
步骤⼀: ⾸先需要⾃定义外部配置⽂件和其中的⾃定义属性:
user.properties . 存放在resources⽬录下:
内部:

#⾃定义配置其他属性:
user.username=zhangsan
user.age=20

步骤⼆: 加载属性到程序中:

@PropertySource(value ="classpath:user.properties")
@ConfigurationProperties(prefix ="user")
@Component
public class User {
private String username;
private Integer age;
get/set封装省略....
}

步骤三:
以上配置需要在main启动函数类⽂件上激活配置: 新版本中默认开启.
@EnableConfigurationProperties
需求⼆:如果加载单个属性:
步骤⼀:省略.如上.
步骤⼆:

@Value("${name}")
private String name;.

备注:以上外部⽂件属性加载.切记注意中⽂乱码问题.

3.springboot项目的开发环境,生产环境配置该如何实现切换?

①用application.properties做配置文件,可以 配置多个环境的配置文件,不同环境配置不同的端口
②用yml做配置文件

4、SpringBoot特性有:

SpringBoot
Starter:他将常⽤的依赖分组进⾏了整合,将其合并到⼀个依赖中,这样就可以⼀次性添加到项⽬的Maven或Gradle构建中;
⾃动配置:SpringBoot的⾃动配置特性利⽤了Spring4对条件化配置的⽀持,合理地推测应⽤所需的bean并⾃动化配置他们;
命令⾏接⼝:(Command-line-interface,CLI):SpringBoot的CLI发挥了Groovy编程语⾔的优势,并结合⾃动配置进⼀步简化Spring应⽤的开发;
Actuatir:它为SpringBoot应⽤的所有特性构建⼀个⼩型的应⽤程序。但⾸先,我们快速了解每项特性,更好的体验他们如何简化Spring编程模型。

5、SpringBoot有哪些优点

①独立运行,使用java -jar xx.jar即可运行
②简化配置
③自动配置
④无代码生成和XML配置,通过注解来实现
⑤内嵌服务容器

6、什么是YAML?

YAML是⼀种⼈类可读的数据序列化语⾔。它通常⽤于配置⽂件。与属性⽂件相⽐,如果我们想要在配置⽂件中添加复杂的属性,YAML⽂件就更加结构化,⽽且更少混淆。可以看出YAML具有分层配置数据。

7、什么是 Spring Profiles?

Spring Profiles允许⽤户根据配置⽂件(dev,test,prod等)来注册bean。因此,当应⽤程序在开发中运⾏时,
只有某些bean可以加载,⽽在PRODUCTION中,某些其他bean可以加载。假设我们的要求是Swagger⽂档仅适⽤于QA环境,
并且禁⽤所有其他⽂档。这可以使⽤配置⽂件来完成。Spring Boot使得使⽤配置⽂件⾮常简单。

8、Spring Boot 还提供了其它的哪些 Starter 选项?

spring-boot-starter-web-services - SOAP Web Services;
spring-boot-starter-web - Web 和 RESTful 应⽤程序;
spring-boot-starter-test - 单元测试和集成测试;
spring-boot-starter-jdbc - 传统的 JDBC;
spring-boot-starter-hateoas - 为服务添加 HATEOAS 功能;
spring-boot-starter-security - 使⽤ SpringSecurity 进⾏⾝份验证和授权;
spring-boot-starter-data-jpa - 带有 Hibeernate 的 Spring Data JPA;
spring-boot-starter-data-rest - 使⽤ Spring Data REST 公布简单的 REST 服务;

9、@SpringBootApplication注解包含那几个注解并且说明下作用?

①@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
②@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
③@ComponentScan:Spring组件扫描

10、什么是 JavaConfig,说明一下优点?

①面向对象的配置。
由于配置被定义为JavaConfig中的类,因此用户可以充分使用Java中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean方法等。
②减少或者消除XML配置。 提供了一种纯Java的方法来配置与XML配置概念相似的Spring容器。
③类型安全和重构友好。提供了一种类型安全的方法了来配置spring容器,由于Java5.0对泛型的支持,现在可以按类型而不是名称检索bean,不需要任何的强制转换或者基于字符串的查找。

11、YAML 配置的优势在哪里?

配置有序,在一些特殊的场景下,配置有序很关键 支持数组,数组中的元素可以是基本数据类型也可以是对象 简洁 相比 properties
配置文件,YAML 还有一个缺点,就是不支持 @PropertySource 注解导入自定义的 YAML 配置。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值