首页 > 其他分享 >Spring基础知识一(概念和模块)

Spring基础知识一(概念和模块)

时间:2023-02-04 12:45:32浏览次数:36  
标签:框架 Spring 模式 基础知识 模块 AOP 提供

一、Spring的概念和优点

1.基本概念:Spring是一个轻量级、非侵入性的开源框架,通过基于POJO对象的编程模型,提供了以前的EJB才能提供的企业及服务。

2.主要优点:

(1).Spring通过控制反转(IOC)实现了面向接口编程,降低了系统的耦合性,使程序有更好的可扩展性

(2).Spring容器可以管理所有托管对象的生命周期和维护它们的依赖关系

(3).Spring提供面向切面编程(AOP),便于将程序的主要逻辑和次要逻辑分开,将通用业务功能从业务系统中分离出来(如安全、事务、日志等)

(4).提供了声明式的事务管理支持,只需简单配置或注解声明就可以完成对数据库事务的管理,

(5).Spring提供对各种优秀框架的封装支持,能无缝集成各种框架;大大降低开发者使用框架的复杂度,便于测试Spring程序

(6).对JavaEE开发中非常难用的一些API都提供了封装,使这些API应用难度大大降低

(7).Spring采用模块化设计,模块之间相互解耦

(8).Spring框架轻量级,非侵入性,具有高度开放性

(9).Spring的DAO模块提供了一致的异常处理结构层,简化了对数据库的操作

二、Spring框架的主要模块和作用

1.Spring AOP:通过事务管理可以使任意Spring管理的对象AOP化

1)目前的开发当中,相互之间都是模块化开发,使用AOP可以有效的实现模块化的思路。

(2)将辅助逻辑(日志、安全、监控等)从业务主体逻辑中进行剥离,同步进行开发。

AOP是一种思想,这种思想是把一些业务逻辑剥离开,然后按照主业务逻辑进行组合,最后达到想要的功能逻辑。

2.Spring ORM:提供了对现有的ORM框架的支持,如Hibernate、JDO等。

3.Spring DAO:提供了对DAO模式和JDBC的支持,DAO可以实现把业务逻辑和数据库访问的代码实现分离,从而降低代码耦合度。通过对JDBC的抽象,简化了开发工作和对异常的处理(可以很好的处理不同数据库厂商抛出的异常)。

4.Spring Web:WEB模块提供对常见框架的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器。

5.Spring Context:扩展核心容器,提供了Spring上下文环境,给开发人员提供非常有用的服务(如国际化、Email和JNDI等)。

6.Spring Web MVC:为Spring提供了一套轻量级的MVC实现,在Spring开发中,我们既可以用Strust也可以用Spring自己的MVC框架,自身框架更简洁方便。

7.Spring Core:提供Spring框架的核心容器,提供了Spring框架的基本功能,这个模块中一个最主要的组件是BeanFactory,它使用工厂模式来创建所需对象。同时,BeanFactory使用IOC思想,通过读取xml文件的方式来实例化对象(可以说BeanFactory提供了组件生命周期的管理、组件的创建、装配和销毁等功能)。

三、Spring框架的设计模式

1.工厂模式:通过BeanFactoryApplicationContext创建对象

简单工厂又称为静态工厂方法,实质上是由一个工厂类根据传入参数,动态决定应该创建哪个产品类。(传参创类)

2.单例模式:指一个类全局只有一个实例,Spring框架中默认的Bean是单例的。(全局一例)

3.适配器模式:作为两个不兼容接口之间的桥梁。(兼容接口)

旧的接口规范和新的接口调用方式不兼容,一般会在中间添加适配器,适配器提供新的接口调用方式,但在内部使用旧的接口;

Spring AOP模块对BeforeAdvice、AfterAdvice和ThrowsAdvice三种通知类型的支持实际上是借助适配器模式来实现的。

Spring中以Adapter结尾的类都是使用了适配器模式,例如AdvisorAdapter等。

4.装饰器模式:指动态给一个对象添加一些额外的职责,就增加功能而言,装饰器比继承更灵活(如已有登录功能,现需要在登录时发送短信通知)

原始的类和调用方法都无需修改,Spring中用到的装饰器模式在类名上有两种表现形式:一种是类名中含有Wrapper,另外一种是类名中含有Decorator

基本上都是动态地给一个对象添加一些额外的职责。(扩展功能)

5.代理模式:指一个类代表另一个类的功能,Spring的AOP实现基本上都是通过代理模式;(完善功能)

装饰器模式和代理模式很类似,区别在于装饰器模式是对现有功能的扩展,代理模式是完成其他功能(如网络检查、请求签名)

6.观察者模式:又称为发布-订阅模式,属于行为型模式的一种。

定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自行更新

Spring中的ApplicationListener就是使用的观察者模式。

7.模板方法:先准备一个抽象类,将部分逻辑以具体方法以及具体构造方法的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑,Spring以Template结尾都是模板方法,例如数据库访问的类JdbcTemplate和Http请求的RestTemplate。

标签:框架,Spring,模式,基础知识,模块,AOP,提供
From: https://www.cnblogs.com/codeboy-top/p/17090937.html

相关文章

  • springcloud(一) - 核心组件
    Eureka各个微服务都会注册到Eureka,服务调用时候也会调用Eureka获取服务注册表,功能类似zk。 Feign动态代理的方式,简化请求其他服务的开发成本,更好得对请求地址组装、......
  • Spring 5(三)AOP
    三.AOP1.基本概念1.1什么是AOP(1)面向切面编程(方面),利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效......
  • es6模块化-cnblog
    es6模块化1.设置es6的模板规范package.json中配置node.js默认支持commonjs规范修改为es6规范"type":"module",2.解构赋值来按需导入2.1按需导出和默认导出......
  • Spring6 DI 依赖注入--Bean属性赋值
    Spring6基于XML实现Bean管理(属性赋值)IOC和DI有什么区别:DI是IOC中的具体实现,DI表示依赖注入或注入属性,注入属性要在创建对象的基础之上完成依赖注入方法bean属性赋值方......
  • Spring组成及其拓展
         ......
  • Spring Boot 集成 Redis 实现数据缓存
    SpringBoot集成Redis实现缓存主要分为以下三步:加入Redis依赖加入Redis配置演示Redis缓存加入依赖首先创建一个项目,在项目中加入Redis依赖,项目依赖如下......
  • 创建springboot项目
    有两种方式1.maven创建2.忘了今天采用maven创建       2.在pom.xml里面添加依赖3. 在resources下创建配置文件application.yam 4.Main就是启动......
  • springboot2.5.6集成swagger3
    引入依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3......
  • day01-SpringMVC基本介绍-01
    SpringMVC介绍-011.离线文档解压spring-5.3.8-dist.zip文件。位置:spring-framework-5.3.8/docs/reference/html/web.html#spring-web2.SpringMVC基本介绍2.1SpringM......
  • 1、Spring源码环境搭建
    本文目的完成SpringFramework5.x的源码构建 准备官网:SpringFramework使用5.x版本源码包构建项目管理工具gradle(没学过的先去找资料学习) 说明Spring框架是......