Spring:基本概念

Spring是一款全栈式轻量级开源框架,主要解决的是程序间耦合的问题。

两大核心:

  • 控制反转IOC
  • 面向切面编程AOP

能够整合众多著名的第三方框架和类库。是实际开发中使用最多的企业应用级开源框架。

2017年9月发布了spring的最新版本spring5.0通用版

spring并不能帮你解决具体的代码问题,spring的优势在于:

  • 方便解耦,简化开发
  • AOP编程的支持
  • 声明式事务的支持
  • 方便程序的测试
  • 方便集成各种优秀框架
  • 降低JavaEE API的使用难度
  • spring的java源码是经典学习案例,设计精妙

Spring体系结构

其他部分的运行都要依赖于Core Container,即核心容器IoC。


程序间的耦合

耦合:简单来说就是程序间的依赖关系,包括

  • 类之间的依赖
  • 方法之间的依赖

解耦:降低程序之间的依赖关系。实际开发中应该做到:编译期不依赖,运行时才依赖。

类依赖的解耦思路举例:

  • 第一步:使用反射来创建对象,而避免使用new关键字,比如在注册数据库驱动时:
    • 如果是用DriverManager.registerDriver(new com.mysql.jdbc.Driver),就会导致类之间的依赖
    • 而如果使用Class.forName("com.mysql.jdbc.Driver")来注册驱动,那么依赖的就只是一个字符串。但是这种方式也会导致字符串内容被写死。
  • 第二步:通过读取配置文件来获取要创建对象的全限定类名,解决写死的问题。

控制反转(IOC)

含义是把创建对象的控制权交给了工厂,所以叫控制反转,它降低了程序中类之间的耦合。


面向切面编程(AOP)

AOP(Aspect Oriented Programming):面向切面编程。简单来说就是把各个业务逻辑代码中重复的部分独立出来,以此来降低各业务逻辑之间的耦合性,主要解决的是方法之间的耦合问题。

aop的主要实现技术:动态代理,对已有方法进行统一增强。spring会根据是否实现了接口来自动选择用哪种代理方式。

切面是指切入点和通知/增强的结合。

  • 切入点:被加入拦截的连接点(即加入拦截的方法)
  • 通知:即在代码增强时所执行的代码,这些代码通常都是来自一个通知类(实现公共代码的类)。
    • 前置通知
    • 后置通知
    • 异常通知
    • 最终通知
    • 环绕通知


Spring的声明式事务控制

javaee体系是进行分层开发的,事务会交由业务层来控制。spring框架为我们提供了一组事务控制的接口,并且它的事务控制是基于aop的,既可以用编程的方式来实现,也可以通过配置来实现。

发布了70 篇原创文章 · 获赞 1 · 访问量 2259

猜你喜欢

转载自blog.csdn.net/caozp913/article/details/103773928
今日推荐