zoukankan      html  css  js  c++  java
  • Ioc和AOP使用扩展

    1.多种方式实现依赖注入

    • Spring 通过setter 访问器实现了对属性的赋值,称为设值注入
    • Spring 还提供了通过构造方法赋值的能力,称为构造注入

        两种注入方式的比较

    Setter 注入:
    对于习惯了传统 javabean 开发的程序员,通过 setter 方法设定依赖关系更加直观。
    如果依赖关系较为复杂,那么构造子注入模式的构造函数也会相当庞大,而此时设值注入模式则更为简洁。
    如果用到了第三方类库,可能要求我们的组件提供一个默认的构造函数,此时构造子注入模式也不适用。

    构造器注入:
    在构造期间完成一个完整的、合法的对象。
    所有依赖关系在构造函数中集中呈现。
    依赖关系在构造时由容器一次性设定,组件被创建之后一直处于相对“不变”的稳定状态。
    只有组件的创建者关心其内部依赖关系,对调用者而言,该依赖关系处于“黑盒”之中。

    2.使用P命名空间可以简化属性注入的配置。

    3.Spring 提供的增强处理类型包括

    • 前置增强:在目标方法执行前实施增强
    • 后置增强:在目标方法执行后实施增强
    • 异常抛出异常:在目标方法抛出异常时织入增强处理,它可以为各功能模块提供统一的、可拔插的处理法案
    • 环绕增强:在目标前后都可以织入增强处理,它是功能最强大的增强处理,Spring把目标方法的控制权全部交给它。在环绕增强处理中,可以获取或修改目标方法的参数,返回值可以对它进行异常处理,甚至 可以决定目标方法是否被执行。
    • 最终增强:无论方法抛出异常还是正常退出,该增强都会执行,类似于异常处理机制中finally块的作用,一般用于释放资源。使用最终增强就可以为各功能模块提供统一的可拔插处理方案。

    4.通过Schema形式将POJO的方法配置成切面,所用标签包括<aop:aspect>,<aop:before>,<aop:after-retuning>,<aop:around>,<aop:after-throwing>,<aop:after>等。

    5.用来定义Bean组件的注解包括

    • @Component(“userDao”)的作用与在XML配置文件中编写的<bean id = "userDao"> 等效
    • @Repository:用于标注Dao类
    • @Service:用于标注业务类
    • @Controller:用于标注控制类

    6.Bean组件的装配可以通过一下三个注解实现

    • @Autowired
    • @Qualifer
    • @Resource

    7.在Spring配置文件中使用<context:component-scan> 元素扫描包含注解的类,完成初始化。

    8.使用注解方式定义切面可以简化配置工作,常用注解有

    • @Aspect
    • @Before
    • @AfterReturning
    • @Around
    • @AfterThrowing
    • @After

    9.通过在配置文件中添加<aop:aspectj-autoproxy> 元素,就可以启用@AspectJ 注解的支持。

  • 相关阅读:
    极光推送
    浅谈Android的屏幕适配问题
    Git/GitHub学习第一天
    Android学习总结
    为什么现在开始写你的第一篇博客
    escape.alf.nu XSS Challenges 0-7 之一步步学XSS
    PE文件学习
    通过sqli-labs学习sql注入——基础挑战之less11-22
    通过sqli-labs学习sql注入——基础挑战之less1-10
    重学数据结构系列之——总结
  • 原文地址:https://www.cnblogs.com/QQW-HH/p/7630180.html
Copyright © 2011-2022 走看看