Spring 中基础概念——IoC、AOP

IoC容器

  • IoC(Inverse of Control):某一接口具体实现类的选择控制权从调用类移除,转交给第三方决定。
  • DI(Dependency Injection):让调用类对某一接口实现类的依赖关系由第三方(容器或协作类)注入,以移除调类对某一接口实现类的依赖。

例子:Spring3.x企业应用开发实战

这里写图片描述

public class MoAttack {
  public void cityGateAsk() {
    LiuDeHua ldh - new LiuDeHua();
    ldh.responseAsk("墨者革离!");
  }
}

图【ioc2】

public class MoAtack {
  public void cityGateAsk() {
    GeLi geli = new LiuDeHua();
    geli.responseAsk("墨者革离!");
  }
}

这里写图片描述
IoC的类型:

  • 构造函数注入
public class MoAtack {
  private GeLi geli;
  public MoAtack(GeLi geli) {
    this.geli = geli;
  }

  public void cityGateAsk() {
    geli.responseAsk("墨者革离!");
  }
}
public class Director {
  public void direct() {
    Geli geli = new LiuDeHua();
    moAttack.cityGateAsk();
  }
}
  • 属性注入
public class MoAtack {
  private GeLi geli;
  public void setGeli(GeLi geli) {
    this.geli = geli;
  }

  public void cityGateAsk() {
    geli.responseAsk("墨者革离!");
  }
}
public class Director {
  public void direct() {
    Geli geli = new LiuDeHua();
    MoAttack moAttack = new MoAttack();

    moAttack.setGeli(geli);
    moAttack.cityGateAsk();
  }
}
  • 接口注入
public interface ActorArrangable {
  void injectGeli(GeLi geli);
}
public class MoAtack implements ActorArrangable {
  private GeLi geli;
  public void injectGeli(GeLi geli) {
    this.geli = geli;
  }

  public void cityGateAsk() {
    geli.responseAsk("墨者革离!");
  }
}
public class Director {
  public void direct() {
    Geli geli = new LiuDeHua();
    MoAttack moAttack = new MoAttack();

    moAttack.injectGeli(geli);
    moAttack.cityGateAsk();
  }
}
  • Spring容器相当如上面的Director,通过配置文件或注解描述类与类之间的依赖关系,自动完成类的初始化和依赖注入的工作。

Java

类装载器ClassLoader

  • 装载:查找和导入Class文件;
  • 链接:执行校验、准备和解析步骤,其中解析步骤是可以选择的;
    • 校验:检查载入Class文件数据的正确性;
    • 准备:给类的静态变量分配存储空间;
    • 解析:将符号应用转换成直接引用;
  • 初始化:对类的静态变量、静态代码块执行初始化工作

反射机制

  • Class反射对象描述类语义结构,可以从Class对象中获取构造函数、成员变量、方法类等元素的放射对象,并以编程的方式通过这些反射对象对目标类对象进行操作。

AOP

  • 通过横向抽取的方式实现代码的可重用性,主要用于性能检测、事务管理和日志记录。
    图【AOP】

  • 动态代理:允许开发者在运行期间创建接口的代理实例。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值