9.20

什么是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注解的类实现。

posted @   别亦难  阅读(118)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示