码迷,mamicode.com
首页 > 其他好文 > 详细

Ioc和AOP使用扩展

时间:2017-10-07 22:50:58      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:比较   scan   功能   service   类型   文件   对象   释放   turn   

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 注解的支持。

 

Ioc和AOP使用扩展

标签:比较   scan   功能   service   类型   文件   对象   释放   turn   

原文地址:http://www.cnblogs.com/QQW-HH/p/7630180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!