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