面试:SpringBoot

1、什么是SpringBoot?
1.1用来简化spring 初始搭建和开发过程使用特定的方式进行配置(properties 或者yml 文
件)
1.2创建独立的spring 引用程序main 方法运行
1.3嵌入Tomcat 无需部署war 包,直接打成jar 包nohup java -jar – & 启动就好
1.4简化了maven 的配置
1.5自动配置spring 添加对应的starter 自动化配置
2、SpringBoot 常用的starter 有哪些?
2.1spring-boot-starter-web(嵌入Tomcat 和web 开发需要的servlet 和jsp 支持)
2.2spring-boot-starter-data-jpa(数据库支持)
2.3spring-boot-starter-data-Redis(Redis 支持)
2.4spring-boot-starter-data-solr(solr 搜索应用框架支持)
2.5mybatis-spring-boot-starter(第三方mybatis 集成starter)
3、SpringBoot 自动配置原理:
3.1@EnableAutoConfiguration 这个注解会"猜"你将如何配置spring,前提是你已经添加
了jar 依赖项,如果spring-boot-starter-web 已经添加Tomcat 和SpringMVC,这个注
释就会自动假设您在开发一个web 应用程序并添加相应的spring 配置,会自动去maven
中读取每个starter 中的spring.factories 文件,该文件里配置了所有需要被创建
spring 容器中bean
3.2在main 方法中加上@SpringBootApplication 和@EnableAutoConfiguration
4、SpringBoot starter 工作原理
4.1SpringBoot 在启动时扫描项目依赖的jar 包,寻找包含spring.factories 文件的jar
4.2根据spring.factories 配置加载AutoConfigure
4.3根据@Conditional 注解的条件,进行自动配置并将bean 注入到Spring Context
5、Springboot 的优点是什么?
5.1减少开发、测试时间和努力
5.2使用JavaConfig 有助于避免使用XML
5.3避免大量的maven 导入和各种版本冲突
5.4提供意见发展方法
5.5通过提供默认值快速开始开发
5.6没有单独的web 服务器需要,这就意味着不再需要启动Tomcat、Glassfish 或其他任何
东西
5.7需要更少的配置,因为没有web.xml 文件。只需添加用@Configuration 注释的类,然后
添加用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。甚至可以将
@Autowired 添加到bean 方法中,以使用Spring 自动装入需要的依赖关系中
6、有没有自定义过SpringBoot 的stater?
有,项目中某些中间件的客户端(如Redis、ElasticSearch)会进行二次封装,并通过starter
方式提供jar 包,供大家使用。
一般定义starter 包括下面几个子工程:
- xxx-spring-boot-starter:pom 格式,管理当前starter 中需要的各种依赖
- xxx-spring-boot-autoconfigure : jar 格式, 编写@Configuration 配置类, 读取
application.yml 文件,实现默认配置
7、什么是Spring Data?
答:Spring Boot auto-configuration 试图自动配置你已经添加的基于jar 依赖项的
Spring 应用程序。比如说,如果HSQLDBis 存在你的类路径中,并且,数据库连接bean 还
没有手动配置,那么我们可以自动配置一个内存数据库。
8、如何重新加载Spring Boot 上的更改,而无需重新启
动服务器?
这可以使用DEV 工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat 将
重新启动。
Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java
开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。
开发人员可以重新加载Spring Boot 上的更改,而无需重新启动服务器。这将消除每次手动
部署更改的需要。Spring Boot 在发布它的第一个版本时没有这个功能。
这是开发人员最需要的功能。DevTools 模块完全满足开发人员的需求。该模块将在生产环
境中被禁用。它还提供H2 数据库控制台以更好地测试应用程序。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
9、运⾏Spring Boot 有哪⼏种方式?
1)打包用命令或者放到容器中运行
2)用Maven/ Gradle 插件运行
3)直接执⾏main 方法运⾏
0、Spring Boot 有哪几种读取配置的方式?
Spring Boot 可以通过@PropertySource,@Value,@Environment,
@ConfigurationProperties 来绑定变量。
1、Spring Boot 可以兼容老Spring 项目吗,如何做?
可以兼容,使用@ImportResource 注解导⼊⽼Spring 项目配置⽂件。
12、Spring Boot 的核⼼配置⽂件有哪⼏个?它们的区别
是什么?
Spring Boot 的核心配置文件是application 和bootstrap 配置文件。
application 配置文件这个容易理解,主要用于Spring Boot 项目的自动化配置。
bootstrap 配置文件有以下几个应用场景。使用Spring Cloud Config 配置中心时,这时
需要在bootstrap
配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;一些
固定的不能被覆盖的属性; 一些加密/解密的场景。
13、Spring Boot 支持哪些日志框架? 推荐和默认的日
志框架是哪个?
Spring Boot 支持Java Util Logging, Log4j2, Lockback 作为日志框架,如果
你使用Starters 启动器,Spring Boot 将使用Logback 作为默认日志框架。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值