Spring和Spring Boot和Spring MVC以及Spring各种设计模式
Spring:(Spring Framework)
Spring是一个开发应用框架,是轻量级、一站式、模块化的,简化企业级应用开发。
主要功能;管理对象,以及对象的依赖关系,面向切面编程,数据库事务管理,数据访问,web框架支持。
具有高度开放性,可以选择Spring部分或者全部,还可以集成第三方框架,如数据访问框架,第三方框架。
Spring MVC
Spring MVC是Spring的一个子框架,用于web开发,是一个web框架。
Spring Boot
Spring Boot是对Spring的一个封装,简化Spring应用,Spring Boot可以帮助企业快速搭建框架,降低开发成本,专注于Spring应用的开发,无需关注XML配置和一些底层的实现。
总结:Spring MVC和Spring Boot都属于Spring,Spring MVC是基于Spring的一个MVC框架,Spring Boot是基于Spring的一套快速开发整合包。
Spring 全家桶是以 Spring Framework 为核心的一系列项目集合。 底层根基是 Spring Framework,衍生出 SpringBoot 简化单体开发;SpringCloud 处理分布式微服务;还有 SpringMVC 做 web 开发、SpringData 操作数据库、SpringSecurity 安全框架等。 整套生态统一编程模型,互相兼容,覆盖单体、Web、数据库、微服务、安全等绝大多数 Java 开发场景。
Spring设计模式
IOC设计模式:
1.工厂模式(Factory)
BeanFactory、ApplicationContext,负责统一创建 Bean;BeanFactory是简单工厂,FactoryBean是工厂 Bean,用来生产复杂对象。2.单例模式(Singleton) Bean 默认 scope=singleton,依靠单例池(一级缓存 ConcurrentHashMap)实现,保证全局只创建一份 Bean 实例。
3.原型模式(Prototype)
@Scope("prototype"),每次获取 Bean 新建对象。4.适配器模式(Adapter) 适配多种配置来源:XML、注解、JavaConfig,统一解析转换成
BeanDefinition;5.代理模式 IOC 本身不直接用,AOP 核心依靠动态代理(JDK 动态代理、CGLIB)。
Spring中设计模式
1.单例模式
定义:
单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
Spring 应用:
Spring IoC 容器中,Bean 默认作用域singleton,整个容器只创建一个实例,复用对象,减少频繁创建销毁的开销。
2.工厂模式
定义:定义了一个用于创建对象的接口,让子类决定实例化哪一个类。
Spring 应用:
BeanFactory是顶层工厂接口;FactoryBean也是工厂模式,用来复杂对象创建;ApplicationContext作为子工厂实现类,负责 Bean 实例创建。
3.适配器模式
定义:将一个接口转换成客户希望的另一个接口,适配器使接口不兼容的那些类可以一起工作。
Spring 两处典型应用
-
IOC 容器层面:适配多种 Bean 配置来源 Spring 支持 XML 配置、注解配置、JavaConfig 多种方式定义 Bean;各类读取器通过适配器,把不同来源的配置统一解析转换为
BeanDefinition,交给容器处理。 -
SpringMVC 层面:HandlerAdapter【面试最高频】
DispatcherServlet作为核心分发器,不直接调用各类处理器; 依靠HandlerAdapter适配器提供统一调用接口,适配多种处理器(@Controller、HttpRequestHandler 等)。 新增处理器类型时,只新增适配器,不用修改 DispatcherServlet 核心代码。
4.代理模式
为其他对象提供一个代理以控制对这个对象的访问,对原有代码无侵入。分为静态代理和动态代理。 静态代理需要手动编写代理类;动态代理在运行时自动生成代理类。
Spring 应用 Spring AOP 依靠动态代理实现;@Transactional、@Cacheable等声明式功能全部基于动态代理完成。
5.策略模式
定义:定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换。策略模式让算法独立于使用它的客户。
Spring 应用 事务传播策略A 方法调用 B 方法,可以选择 REQUIRED、REQUIRES_NEW 等不同策略,控制事务怎么运行,切换策略不需要改动外层业务代码。
6.模板模式
定义:模板方法模式:在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。
Spring应用
JdbcTemplate、TransactionTemplate、RestTemplate 以 JdbcTemplate 举例: 固定骨架:获取连接 → 创建语句 → 执行 SQL → 关闭资源 开发者只需要自定义 SQL、处理结果,不用重复写连接开关、资源释放这些通用代码。
7.观察者模式
定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并被自动更新。
Spring 应用 Spring 事件机制:ApplicationEvent事件、ApplicationListener监听器;容器刷新、Bean 创建完成都会发布事件。
更多推荐


所有评论(0)