一、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.工厂模式:通过BeanFactory或ApplicationContext创建对象
简单工厂又称为静态工厂方法,实质上是由一个工厂类根据传入参数,动态决定应该创建哪个产品类。(传参创类)
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