spring基础

1.关键策略:
● 基于POJO的轻量级和最小入侵性编程
● 通过依赖注入和面向接口实现松耦合
● 基于切面和惯例进行声明式编程
● 通过切面和模板减少样板式代码

1.1 spring的非入侵编程模型意味着bean在spring和非spring应用中都可以发挥相同作用,类本身没有痕迹表明使用了spring,不强迫实现spring规范的接口或者spring的类,最坏情形下,或许会使用spring注解
1.2 紧密耦合的代码难以测试、难以复用、难以理解,一定程度耦合是必须的,耦合需要被小心谨慎的管理。
非注入方式:

public class DamselRescuingKnight implements Knight {

    private  RescueDamselQuest quest;

    public DamselRescuingKnight(){//紧耦合
        this.quest=new RescueDamselQuest();
    }

    public void embarkOnQuest(){
        quest.embark();
    }
}

注入方式:

public class BraveKnight implements Knight {
    private  Quest quest;

    public BraveKnight(Quest quest){//注入Quest
        this.quest=quest;
    }

    public void embarkOnQuest(){
        quest.embark();
    }
}
public class RescueDamselQuest implements Quest {
    public void embark() {
        System.out.println("hhhh");
    }
}

注入和非注入的区别:非注入方式与RescueDamselQuest 紧密耦合,不便于测试,如果在其构造过程中需要其他初始化操作,极其不便利;注入方式采用依赖注入的方式之一,构造器注入,BraveKnight能响应任意Quest,RescueDamselQuest 实现Quest接口后需要将其注入BraveKnight。

创建应用组件之间协作的行为通常称为装配(wiring)。装配通过xml文件或者注解方式进行。
spring通过应用上下文(Application Context)装载bean的定义并把他们组装起来,spring应用上下文全权负责对象的创建和组装

1.3应用切面(AOP)
面向切面允许将遍布软件各处的功能分离出来形成可重用的组件,如日志模块,安全模块,事务管理等非核心模块,这些组件会有更高的内聚性并且更加关注自身业务,完全不需要了解涉及系统服务所带来的复杂性

1.4对模板代码进行封装,如JDBC,JMS,JNDI和使用REST服务通常会涉及大量代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值