1.SpringBoot和Spring的区别是什么?
典型回答
Spring提供了一系列模块来支持不同的应用程序,如依赖注入、面向切面编程、事务管理、Web应用程序开发等。而SpringBoot的出现简化了Spring应用程序的开发和部署,特别是构建微服务和快速开发的应用程序
相比于Spring,SpringBoot主要在几个方面提升使用Spring的效率,降低开发成本。
- 自动配置
SpringBoot通过Auto-Configuration来减少配置工作。我们可以通过依赖一个starter全部都依赖进来 - 内嵌Web服务器
Spring Boot内置了常见的Web服务器,无需外部Web服务器 - 约定大于配置
默认读取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。

924

被折叠的 条评论
为什么被折叠?



