Java面试大全(2020年版)131-140

131.简述一下IOC容器对BEAN的生命周期?

  • 通过构造器或工厂方法创建 Bean 实例
  • 为Bean 的属性设置值和对其他 Bean 的引用
  • 将Bean 实 例 传 递 给 Bean 后 置 处 理 器 的 postProcessBeforeInitialization 方法
  • 调用 Bean 的初始化方法(init-method)
  • 将 Bean 实 例 传 递 给 Bean 后 置 处 理 器 的 postProcessAfterInitialization 方法
  • Bean 可以使用了
  • 当容器关闭时, 调用 Bean 的销毁方法(destroy-method)

132.在Spring中AOP的使用场景有哪些?

  • 主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。
  • 主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业 务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务 逻辑的方法中,进而改 变这些行为的时候不影响业务逻辑的代码。

133.Spring支持的事务管理类型

Spring支持两种类型的事务管理:

  • 编程式事务管理:这意味你通过编程的方式管理事务,给你带来极大的灵活性,但是难维护。
  • 声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务。

134.Spring分布式事务如何处理的

  • 第一种方案:可靠消息最终一致性,需要业务系统结合 MQ消息中间件实现,在实现过程中需要保证消息的成功发送及成功消费。即需要通过业务系统控制 MQ的消息状态;
  • 第二种方案:TCC补偿性,分为三个阶段 TRYING-CONFIRMING-CANCELING。每个阶段做不同的处理。
    • TRYING阶段主要是对业务系统进行检测及资源预留
    • CONFIRMING阶段是做业务提交,通过 TRYING阶段执行成功后,再执行该阶段。默认如果 TRYING阶段执行成功,CONFIRMING就一定能成功。
    • CANCELING阶段是回对业务做回滚,在 TRYING阶段中,如果存在分支事务 TRYING失败,则需要调用 CANCELING将已预留的资源进行释放

135.什么是SpringBoot

Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。大多数SpringBoot项目只需要很少的配置文件。

136.SpringBoot核心功能

  • 独立运行Spring项目:Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar来运行。
  • 内嵌servlet容器:Spring Boot可以选择内嵌Tomcat、jetty或者Undertow,这样我们无须以war包形式部署项目。
  • 提供starter简化Maven配置: spring提供了一系列的start pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web,会自动加入如图5-1所示的依赖包。
  • 自动装配Spring:SpringBoot会根据在类路径中的jar包,类、为jar包里面的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,SpringBoot只考虑大多数的开发场景,并不是所有的场景,若在实际开发中我们需要配置Bean,而SpringBoot灭有提供支持,则可以自定义自动配置。
  • 准生产的应用监控:SpringBoot提供基于http ssh telnet对运行时的项目进行监控。
  • 无代码生产和xml配置:SpringBoot不是借助与代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x提供的新特性。

137.SpringBoot优缺点

  • 优点:
    • 快速构建项目。
    • 对主流开发框架的无配置集成。
    • 项目可独立运行,无须外部依赖Servlet容器。
    • 提供运行时的应用监控。
    • 极大的提高了开发、部署效率。
    • 与云计算的天然集成。
  • 缺点:
    • 如果你不认同spring框架,也许这就是缺点。

138.SpringBoot特性

  • 创建独立的Spring项目
  • 内置Tomcat和Jetty容器
  • 提供一个starter POMs来简化Maven配置
  • 提供了一系列大型项目中常见的非功能性特性,如安全、指标,健康检测、外部配置等
  • 完全没有代码生成和xml配置文件

139.SpringBoot CLI

SpringBoot CLI 是SpringBoot提供的控制台命令工具。

140.SpringBoot maven构建项目

spring-boot-starter-parent:是一个特殊Start,它用来提供相关的Maven依赖项,使用它之后,常用的包依赖可以省去version标签。

原创文章 52 获赞 3 访问量 2437

猜你喜欢

转载自blog.csdn.net/m0_47572402/article/details/106127691
今日推荐