SpringBoot
Spring 框架中都用到了哪些设计模式?
1、 简单工厂:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。
Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。
2、 工厂方法(非23种设计模式):实现了FactoryBean接口的bean是一类叫做factory的bean。
3、 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
4、适配器模式:SpringMVC中的适配器HandlerAdatper。
5、模板方法:父类定义了骨架(调用哪些方法及顺序),某些特定方法由子类实现。如redisTemplate.execute()方法
6、策略模式:
7、装饰器模式:动态地给一个对象添加一些额外的职责。Spring中用到的包装器模式在类名上有两种表现:一种是类名中含有Wrapper,另一种是类名中含Decorator。
8、代理模式:动态代理跟静态代理
9、观察者模式:spring的事件驱动模型使用的是 观察者模式 ,Spring中Observer模式常用的地方是listener的实现。
Spring框架中的Bean时线程安全的嘛?如果线程不安全,要如何处理?
Spring容器本身没有提供Bean的线程安全策略,因此,也可以说Spring容器中的Bean时线程不安全