目录
1.单例模式:
单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供了一个全局访问点。在 Spring 中,Bean 默认是单例的,这意味着每个 Bean 只会被创建一次,并且可以在整个应用程序中共享
2.工厂模式:
它提供了一种创建对象的方式,使得应用程序可以更加灵活和可维护。Spring 提供了多种工厂模式,如 BeanFactory 和 ApplicationContext 等,通过这些工厂可以创建和管理对象的实例。
3.代理模式:
代理模式是一种结构型设计模式,它允许开发人员在不修改原有代码的情况下,向应用程序中添加新的功能。在 Spring AOP(面向切面编程)就是使用代理模式的实现,它允许开发人员在方法调用前后执行一些自定义的操作,比如日志记录、性能监控等
4.观察者模式:
Spring 事件机制就是基于观察者模式实现的,通过事件源和监听器来实现对象之间的解耦。
5.适配器模式:
适配器模式是一种结构型设计模式,它允许开发人员将一个类的接口转换成另一个类的接口,以满足客户端的需求。在 Spring 中,适配器模式常用于将不同类型的对象转换成统一的接口。
Spring
????????Spring 是一个轻量级的开源框架,它提供了一种简单的方式来构建企业级应用程序。Spring 框架的核心是 IoC 和 AOP 两个概念。
IoC 是一种设计模式,它将对象的创建和依赖关系的管理从应用程序代码中分离出来,使得应用程序更加灵活和可维护。
AOP 是一种编程范式,它允许开发人员在不修改原有代码的情况下,向应用程序中添加新的功能。
Spring 框架提供了很多模块,包括核心容器、数据访问、Web、AOP、消息、测试等。开发人员可以根据自己的需求选择合适的模块来构建应用程序。
Spring Boot
????????Spring Boot 本质上是 Spring 框架的延伸和扩展,它的诞生是为了简化 Spring 框架初始搭建以及开发的过程,使用它可以不再依赖 Spring 应用程序中的 XML 配置,为更快、更高效的开发 Spring 提供更加有力的支持。 Spring Boot 也提供了很多特性,包括自动配置、嵌入式 Web 服务器、健康检查、度量指标、安全性等。开发人员可以通过使用 Spring Boot Starter 来快速集成常用的第三方库和框架,比如 Spring Data、Spring Security、MyBatis、Redis 等
Spring Boot 是一个基于 Spring 框架的快速开发框架,它有以下优点:
????????Spring Boot 项?的?大特点:约定?于配置。较于Spring需要配置Bean的扫描路径,而SpringBoot就不需要
?
?
自动配置模块:自动配置根据项目中引入的依赖和应用程序的环境自动配置Spring应用程序。它大大减少了繁琐的配置过程。
起步依赖模块:Spring Boot提供了许多预配置的起步依赖,可以轻松添加常用的功能模块。例如,你可以通过添加spring-boot-starter-web
起步依赖来快速构建Web应用程序。
嵌入式Web服务器模块:Spring Boot集成了嵌入式的Web服务器,如Tomcat、Jetty、Undertow等,可以使应用程序成为自包含的可执行JAR文件。
配置管理模块:Spring Boot简化了配置管理,可以使用属性文件、YAML文件、环境变量等来配置应用程序。
日志管理模块:Spring Boot集成了常见的日志框架,如Logback、Log4j2等,可以方便地配置和管理日志输出。
SpringBoot模块中操作数据库的模块是Spring Data JPA
Spring Boot:Spring Boot是Spring框架的扩展,提供了自动配置和快速启动功能,简化了应用程序的开发和部署过程。
Spring MVC:Spring MVC是一个基于模型-视图-控制器(MVC)设计模式的Web框架,用于构建Web应用程序。它提供了处理请求和响应的控制器、视图解析器等组件。
Spring Data:Spring Data是一个简化数据库访问的组件,提供了对关系型数据库和NoSQL数据库的统一访问方式,包括Spring Data JPA、Spring Data JDBC、Spring Data MongoDB等子项目。
Spring AOP:Spring AOP(面向切面编程)是一种编程范式,用于实现横切关注点的模块化。它可以将通用的横切逻辑(例如日志、事务管理等)与其他模块分离开来。
Spring Core(核心):Spring Core是Spring框架的核心组件,提供了IoC(控制反转)和DI(依赖注入)容器,用于管理应用程序中的对象和依赖关系。
? ? ? ? IoC的含义是控制反转,举个汽车例子可以更好的帮助我们理解何为控制反转。
构建?辆?(Car Class),然??需要依赖?身,??身需要依赖底盘,?底盘需要依赖轮胎,由上往下一层层实现;?
一种汽车型号的轮胎尺寸大小是固定的,当需要生产不同尺寸大小的轮胎尺寸时,此时就需要由上到下修改轮胎尺寸参数,十分繁琐。为此我们转换思路,将原来由??创建的下级类,改为传递的?式(也就是注?的?式),因为我们不需要在当前类中创建下级类了,所以下级类即使发?变化(创建或减少参数),当前类本身也?需修改任何代码,这样就完成了程序的解耦。
?
IoC容器的优点:实现了代码的解耦,无需关注代码实现的细节
????????AOP见下图所示:
????????
AOP的好处包括:
SpringBoot是一个基于Spring框架的快速开发脚手架,它的运行原理可以简单概括为以下几个步骤:
SpringBoot的启动类是@SpringBootApplication注解标注的类,它会自动扫描同级包及其子包下的所有类,将它们作为Spring Bean进行加载。
SpringBoot会根据classpath下的配置文件(application.properties或application.yml)来配置应用程序的行为,例如端口号、数据库连接等。
SpringBoot会根据依赖关系自动配置应用程序的各种组件,例如WebMvc、JdbcTemplate等。
SpringBoot会根据配置文件中的信息来启动内嵌的Tomcat、Jetty或Undertow等Web容器,将应用程序部署到Web容器中。
应用程序启动后,SpringBoot会自动运行所有实现了CommandLineRunner接口的Bean,这些Bean可以用来执行一些初始化操作。
?SpringBoot的理解:
????????Spring Boot 本质上是 Spring 框架的延伸和扩展,它的诞生是为了简化 Spring 框架初始搭建以及开发的过程,可以理解为创建Spring框架的脚手架,大大提高了创建Spring项目的效率。同时SpringBoot框架还具备了约定大于配置的特点。
?Spring 的诞?是为了简化 Java 程序的开发的,? Spring Boot 的诞?是为了简化 Spring 程序开发的。
? ? ? ? ????????Spring Boot 翻译?下就是 Spring 脚?架,就是为了快速开发 Spring 框架?诞?的
? ? ? ? ?????????Spring Boot 项?的?大特点:约定?于配置。较于Spring需要配置Bean的扫描路径,而SpringBoot就不需要。
?SpringMVC的理解:
????????Spring MVC是一个基于Java的Web框架,用于开发Web应用程序。它基于MVC(Model-View-Controller)设计模式,将应用程序的逻辑分为模型(Model)、视图(View)和控制器(Controller)三个部分,以实现代码的分离和模块化。
Spring MVC的工作流程如下:
Spring MVC的特点和优势包括:
灵活性:Spring MVC以松散耦合的形式组织代码,可以与其他Spring框架集成,并可以与多种视图技术(如JSP、Thymeleaf、Freemarker等)搭配使用。
易于测试:通过使用MVC模式,控制器(Controller)和模型(Model)可以独立于视图(View)进行测试,提高了代码的可测试性。
强大的请求处理:Spring MVC提供了灵活的请求映射和处理机制,可以根据URL、请求参数、请求方法等进行精确匹配,并提供了丰富的支持RESTful风格的请求处理。
国际化和本地化支持:Spring MVC提供了多语言和多区域的支持,可以根据用户的语言和地区自动切换视图和文本资源。
强大的数据绑定和表单处理:Spring MVC支持数据绑定,可以将请求参数自动绑定到控制器中的Java对象,并提供了表单验证和错误处理的功能。
安全性:Spring MVC集成了Spring Security框架,可以方便地实现用户认证和授权功能。
?