-
如果没有为proxyBean定义proxyInterfaces的class,则有proxyBean自己去发现是否有实现接口。而有定义proxyInterfaces的class,表示target指向的实现类实现了proxyInterfaces的class所代表的接口。查看全部
-
通过ProxyBean的类型为list的interceptorNames属性为target的BizLogicImpl添加before、afterRunning 等通知。查看全部
-
pointCutBean的属性mappedNames是一个list,list里的值都是名称已sa开头的方法名(比如例子的save()方法)。表示把所有名称以sa开头的方法都作为切入点放到mappedNames这个list中。 指向spring框架的defaultpointcutAdvisor的id为defaultAdvisor 的bean中有名为pointCut 的属性ref 的是pointCutBean这个bean。查看全部
-
MethodInterceptor就是around advice查看全部
-
要想获得BizLogic接口的实现类BizLogicImplTaget,不直接通过该实现类的bean id 利用getBean方法去获得,而是通过代理工厂的getObject方法获得。spring不用自己创建代理工厂类,而是为proxyBean用XML写一个bean,id为BizLogicImpl,target为BizLogicImplTarget。这样通过getBean方法调用id为BizLogicImpl的bean,实际上就是调用了BizLogicImplTarget这个实现了BizLogic接口的实现类。 所以proxyBean相当于以前写的factory类,BizLogicImpl的bean相当于以前写的factory类里的getObject方法。查看全部
-
使用proceed方法时,无论切入点的方法有无返回值,使用通用的格式 Object XX = pjp.proceed();查看全部
-
person这个bean,当调用get方法的时候不是调用getPerson,而是ProxyFactoryBean的getObject方法,getObject方法返回的是personImpl这个类的对象。查看全部
-
如果有set方法,不希望通过set方法去改变就抛出异常。查看全部
-
list表示property是一个list,value的sa*表示以sa开头的方法。查看全部
-
bean的自动扫描查看全部
-
本章内容总结一下,大家看看对不对: 未使用spring之前,需要自己管理bean。不同bean类型不同,要在这些自己创建的bean类型上面实现的类似spring中advice的功能,比较复杂。 使用了Spring之后,Spring IoC可以帮你管理bean(以前是通过硬代码的方式new一个bean等),其原理是通过ProxyFactoryBean来实现,即统一的ProxyFactoryBean能帮你管理各种各样的bean,然后在上面实现各种advice(拦截器?),并且实现这些功能这是基于配置的而不需要硬编码。ProxyFactoryBean具体是如何实现的,是通过jdk自身的动态代理或者CGLib。查看全部
-
SimpleProfiler为切面类,在这里负责监控。即执行getFoo的时候,调用lock.start(),执行完毕后,调用clock.stop(),从而记录其运行时间。 并且在该切面类中,可以接收getFoo(String name,int age)中的name与age参数查看全部
-
两种注入方式查看全部
-
-哪些方面的控制被反转了呢? -获得依赖对象的过程被反转了查看全部
-
接口:对外公开我实现了哪些方法,但是具体的实现我不进行公开查看全部
举报
0/150
提交
取消