spring1.1

1.注解方式和配置文件方式的混用:
1.配置文件方式 : 用于配置对象的创建 
<beans>
<!--开启扫描-->
<context:component-scan base-package="需要扫描注解的包名"></context:component-scan>
<!--配置对象-->
<bean id="对象在框架中的名称" class="要被创建对象那个类的全类名"></bean>
</beans>
2.注解方式 : 用于搭建对象之间的引用关系 @Resource(name="被引用对象的名字")

2.aop的实现方式动态代理:
1.使用JDK动态代理,针对有接口的情况,
2.使用cglib动态代理,针对没有接口的情况;


3.代理工厂类做的事情:
当你给动态代理工厂一个需要被代理的对象 target 时,动态代理工厂用Proxy的API给你动态创建一个代理对象proxy,并且会同时给
这个代理对象绑定了一个invoke()方法(ps:这个invoke()方法是在一个 Invocation 类中定义的),这个invoke方法有何特
点呢? 1.因为代理对象 proxy 是工厂给你的,这个invoke()方法也是工厂给你绑定的,所以,这个invoke()方法可以监听到你在
什么时候,调用了这个代理 proxy 的哪个方法 method(),所以一旦你调用代理的某个方法,马上就会被invoke()方法监听到,它可以马上
获得当前被调用的方法 method() 的对象 Method,以及调用方法的代理对象 proxy ,还有你调用方法时传入的参数 Object[] params ;
当然,此时你也可以获得被代理的对象 target(实际操作中是让代理工厂实现了Invocation接口,那么invoke()方法也在代理类中,所以在创
建代理类时通过构造传参,将对象target传过去),那么此时此刻,你可以在invoke(),方法中直接 用你获得的method对象,传入被代理的对象
target 和 参数 params,这样就完成了通过代理对象 proxy 调方法,实现了 目标对象 target 的相应方法被调用,但是,但是,如果你一旦
在invoke()方法中写点儿其他东西,比如说:你在 Method 对象invoke之前或者之后 做了一些其他的操作,那么这就意味着,此时此刻,你用
代理调用方法,不仅意味着目标对象target的相应方法被调用,而且同时执行了其他操作,这个就是动态代理实现了功能的增强;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值