多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Spring和Spring Boot和Spring MVC以及Spring各种设计模式

Spring和Spring Boot和Spring MVC以及Spring各种设计模式 Spring:Spring FrameworkSpring是一个开发应用框架是轻量级、一站式、模块化的简化企业级应用开发。主要功能;管理对象以及对象的依赖关系面向切面编程数据库事务管理数据访问web框架支持。具有高度开放性可以选择Spring部分或者全部还可以集成第三方框架如数据访问框架第三方框架。Spring MVCSpring MVC是Spring的一个子框架用于web开发是一个web框架。Spring BootSpring 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.工厂模式FactoryBeanFactory、ApplicationContext负责统一创建 BeanBeanFactory是简单工厂FactoryBean是工厂 Bean用来生产复杂对象。2.单例模式SingletonBean 默认 scopesingleton依靠单例池一级缓存 ConcurrentHashMap实现保证全局只创建一份 Bean 实例。3.原型模式PrototypeScope(prototype)每次获取 Bean 新建对象。4.适配器模式Adapter适配多种配置来源XML、注解、JavaConfig统一解析转换成BeanDefinition5.代理模式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 创建完成都会发布事件。
返回列表