代码改变世界

9月10日培训日记

2006-09-10 16:45  java ee spring  阅读(131)  评论(0编辑  收藏  举报

1.回顾了一下spring AOP的实现原理,调查了一下学员们的掌握情况,还算不错,大家基本上都能回答出FactroyBean的作用和InvocationHandler.invoke方法的各个参数的意义。
2.引出了Spring的ProxyFactoryBean及其三个重要的属性:target、proxyInterfaces、interceptorNames,有了前面的理论基础,学员们一点就明,基本上是我引导提问,学员们就能回答。
3.讲解了在Eclipse中怎样引入对spring aop开发的支持;讲解了ApplicationContext与BeanFactory的区别,今天的例子程序改为使用ApplicationContext。
4.讲解了MethodBeforeAdvice、AfterReturningAdvice、MethodInterceptor,ThrowsAdvice,从头到尾编写一个例子程序,把这些Advice都给实验了一把。<ref>元素的bean属性与local属性的区别。实验了这些Advice按不同顺序注册时的不同运行效果。另外,实验有一点意外收获:如果只配置一个interceptor,那么可以不将<value>元素嵌套在<list>元素,这算不算spring的一个设计缺陷呢?
5.给学员们看了看我们的项目需求,讲解了一下我们的视频点播系统的加密技术。
6.学员王泽佑(高中毕业不上大学)自己做了个有趣实验,让一个类实现上面的所有Advice接口,只注册了一下这个Advice实现类,结果是所有实现的Advice的方法都被运行。
7.讲解了PointcutAdvisor,Pointcut。演示了NameMatchMethodPointcutAdvisor、RegexpMethodPointcutAdvisor、DefaultPointcutAdvisor的应用,这些实验都只涉及配置文件的修改,而没有修改任何源代码,这是最令学员们感兴趣的地方,大家看到了spring的好处和作用。借机给大家重新回顾了一下什么是IOC和DI,让大家不仅要知道它们的含义,还要切记在程序中用好这些功能。
8.讲解DI时,用自己的土理论给大家讲解什么是依赖,顺便带出了软件分层设计的思想,上层依赖下层,忌讳产生双向依赖。使用spring时,把依赖转移到xml配置文件中,原理是很简单,关键是在做程序时要能时刻想到这一点,刚开始的死办法就是不要new自己的对象型的成员变量。


作业的实验步骤:
1.配置ProxyFactroyBean
2.配置目标Bean,就用java.util.ArrayList
3.配置Advice,一定自己写,实现MethodInterceptor等Advice
4.测试运行
5.把Advice改为Advisor;测试一下过滤(切入点)功能