java面试题(第二天)Spring部分

1.SpringBoot和Spring的区别是什么?

典型回答

Spring提供了一系列模块来支持不同的应用程序,如依赖注入、面向切面编程、事务管理、Web应用程序开发等。而SpringBoot的出现简化了Spring应用程序的开发和部署,特别是构建微服务和快速开发的应用程序
相比于Spring,SpringBoot主要在几个方面提升使用Spring的效率,降低开发成本。

  1. 自动配置
    SpringBoot通过Auto-Configuration来减少配置工作。我们可以通过依赖一个starter全部都依赖进来
  2. 内嵌Web服务器
    Spring Boot内置了常见的Web服务器,无需外部Web服务器
  3. 约定大于配置
    默认读取spring.factories来加载Starter、读取application.properties或application.yml文件来进行属性配置等。

2.Spring中常用的的设计模式

1.工厂模式

java中最常用的设计模式之一。
工厂中有专门生产类的方法,有了这个工厂,就可以直接去工厂获取类,不需要自己去创建。
Spring中BeanFactory就是工厂模式的体现,通过getBean方法来获取Bean对象。

2.策略模式

在策略模式中,一个类的行为或者算法可以在运行时修改。在策略模式中, 创建表示各种策略对象和一个行为随着策略对象改变而改变的context对象,策略对象改变context对象的执行算法 。

Spring中提供了InstantiationStrategy实例化策略接口,其中有两个实现,分别是SimpleInstantiationStrategy以及 CglibSubclassingInstantiationStrategy。

策略模式的优缺点

策略模式的优点

  • 开闭原则:策略模式提供了对开闭原则的支持,可以在不修改原有系统的基础上,选择不同的行为,也可以额外扩展其他行为。
  • 避免代码冗余:可以避免使用多重条件判定语句,可以避免大量出现循环语句。
  • 安全保密:策略模式可以提供算法的保密性和安全性;在终端使用策略时。只需要策略的作用即可,不需要知道它是如何实现的

策略模式缺点

  • 策略类选择:客户端必须知道所有的策略类,并且自行决定使用哪一个策略类;
  • 增加复杂性:如果系统很复杂,就会产生很多的策略类。

3.观察者模式

当对象间存在一对多关系时,则使用观察者模式。比如,当一个对象被修改时,则会自动通知依赖它的对象,观察者模式属于行为型模式。

4.模板模式

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。

一般情况下,都是使用继承的方式来实现模板模式,但是 Spring 并没有使用这种方式,而是使用Callback 模式与模板方法模式配合,既达到了代码复用的效果,同时增加了灵活性。

5、适配器模式

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。

实现方式:SpringMVC中的适配器HandlerAdatper。

实现原理:HandlerAdatper根据Handler规则执行不同的Handler。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值