什么是Spring?
Spring是一个轻量级的Java开发框架,最早由Rod Johnson创建,最初只有2MB,目的是为解决企业级应用开发的业务逻辑层和其他各层的耦合问题。是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。
Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。
Spring可以做的事很多,它为企业级开发提供了丰富的功能,但这些功能的底层都是依赖于它的三大核心思想
- 控制反转(IOC)
- 依赖注入(DI)
- 面向切面编程(AOP)
Spring的优缺点?
优点
- 方便解耦,简化开发:Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护,交给Spring管理。
- AOP编程的支持:Spring提供面向切面编程,可以方便的实现对程序进行权限拦截,运行监控等功能。
- 声明式事务的支持:只需要通过配置就可以完成对事务的管理,无需手段编程
- 方便程序的测试:Spring对Junit4支持,可以通过注解方便的测试Spring程序
- 方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀的框架的直接支持(如:Sruts、Hibernate、MyBatis等)。
- 降低JavaEE API的使用难度:Spring对JavaEE开发中的非常难用的API(JDBC,JavaMail,远程调用等),都提供了封装,使这些API应用难度大大降低。
缺点
- Spring原本的是一个2MB大小的轻量级框架,却在现在越来越复杂。
- Spring依赖反射,反射影响性能
- 使用门槛身高,需要学习Spring
什么是Spring IOC容器
控制反转即IOC(Inversion of Control),它把穿的上的程序代码直接操控的对象交给容器,通过容器来实现对象组件的装配和管理。所谓的控制反转:概念就是对组件对象控制权限的转移,从程序代码本身转移到外部容器。
Spring IOC负责创建对象,管理对象(通过依赖注入(DI)),装配对象,配置对象,并且管理这些对象的整个生命周期。
控制反转(IOC)有什么用
- 管理对象的创建和依赖关系的维护。对象的创建并不是一件简单的事,在对象关系比较复杂,如果依赖关系需要开发人员维护,那很折磨
- 解耦,由容器去维护具体的对象
- 托管了类的产生过程,比如我们需要在类的产生过程中做一些处理,最直接的例子就是代理,如果有容器程序可以把这部分处理交给容器,应用程序则无需去关系类是如何完成代理的。
IOC的优点是什么?
- IOC或依赖注入把应用的代码量降低到最低
- 它使应用容易测试,单元测试不再需要单例和JNDI查找机制
- 最小的代价和最小的侵入性使松散耦合得以实现
- IOC容器支持加载服务时的饿汉式初始化和懒加载。
Spring IOC的实现机制支持哪些功能
Spring中的IOC的实现原理就是工厂模式加载反射机制
Spring的IOC设计支持以下功能:
- 依赖注入
- 依赖检查
- 自动装配
- 支持集合
- 指定初始化方法和销毁方法
- 支持回调某些方法(单是需要实现Spring接口,略有侵入)
解释AOP
面向切面的编程,或AOP,是一种编程技术,允许程序模块化横向切割关注点,或横切典型的责任划分,如日志和事务管理。
Aspect切面
AOP核心就是切面,它将多个类的通用行为封装成可重用的模块,该模块含有一组API提供横切功能。比如,一个日志模块可以被称作日志的AOP切面。根据需求的不同,一个应用程序可以有若干切面。在Spring AOP中,切面通过带有@Aspect注解的类实现。
标签:容器,9.20,对象,Spring,切面,AOP,IOC From: https://www.cnblogs.com/bieyinan/p/16712824.html