有人可以用簡單的術語解釋ProxyFactoryBean嗎?我看到這被引用很多地方。ProxyFactoryBean in Spring
回答
ProxyFactoryBean
用於將攔截器邏輯應用於現有的目標bean,以便在該bean的方法被調用時,攔截器在該方法調用之前和之後執行。這是面向方面編程(AOP)的一個例子。
這可以用一個簡單的例子來解釋。 AOP的經典用例是將緩存應用於方法調用的結果。這可以通過使用ProxyFactoryBean
進行接線如下:
<bean id="targetService" class="com.x.MyClass"/>
<bean id="cachingInterceptor" class="com.x.MyCachingInterceptor"/>
<bean id="cachedService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="targetService"/>
<property name="interfaces">
<list>
<value>com.x.MyService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>cachingInterceptor</value>
</list>
</property>
</bean>
我們有com.x.MyClass
類型,它實現了接口com.x.MyService
的豆targetService
。我們也有一個名爲cachingInterceptor
的攔截器bean,它實現了接口org.aopalliance.intercept.MethodInterceptor
。
該配置將生成一個名爲cachedService
的新bean,它實現了MyService
接口。任何對該對象方法的調用都將首先通過cachingInterceptor
對象的invoke()
方法傳遞,在這種情況下,該方法將在其內部緩存中查找以前方法調用的結果。它會返回緩存的結果,或允許方法調用繼續執行targetService
上適當的方法。
targetService
本身對此一無所知,它完全沒有意識到所有這些AOP事情正在進行。
ProxyFactoryBean
在Spring內部大量使用,以便由於各種原因(例如遠程存根,事務管理)生成代理,但它也非常適合在應用程序邏輯中使用。
在這裏添加一件事就是,如果我們有幾個'interceptorNames',它們按照這樣的順序應用,那麼列表中的第一個是第一個攔截調用等等。 – Vic 2013-11-04 11:40:22
ProxyFactoryBean將方面應用於現有的bean。您從現有的bean(目標bean)開始,它彈出「包裝」以添加您提供的方面。返回的bean與原始bean具有相同的接口,但是具有圍繞目標bean方法編寫的附加方面。
- 1. Spring框架錯誤創建ProxyFactoryBean
- 2. Spring的@Transactional在ProxyFactoryBean上的性能
- 3. 的Spring AOP的ProxyFactoryBean和ProxyFactory裏並拋出ClassCastException
- 4. Spring如何從ProxyFactoryBean中獲取具有原型範圍的bean
- 5. @Autowired in bean not in spring context
- 6. @FormParameter in spring -mvc
- 7. Spring commonj.Workmanager in websphere
- 8. NoClassDefFoundError in spring
- 9. ConversionService in Spring
- 10. Curies in Spring HATEOAS
- 11. matlab webfigure in spring mvc
- 12. @AfterThrowing in Spring different behavior
- 13. @Resource in Spring does not work?
- 14. 分享spring beans in teracotta
- 15. In()使用spring jdbc嗎?
- 16. LazyInitializationException Thread in Spring Roo 1.5
- 17. Spring Security Oauth2 in Rest API
- 18. 如何調試ProxyFactoryBean攔截器未觸發
- 19. 如何將許多目標設置爲ProxyFactoryBean?
- 20. 在ProxyFactoryBean中注入屬性時,順序是否重要
- 21. Datediff in Criteria operator in spring-data-mongodb does not working
- 22. Grails&Spring - in resources.groovy如何設置列表
- 23. 多列IN使用Spring的Sql
- 24. Bean名爲 - Spring in Action有錯誤嗎?
- 25. 使用java spring AbstractPreAuthenticatedProcessingFilter for「Keep me logged in」
- 26. LocaleResolver in filter null yet shows it has autowired! Spring MVC 3.1.1/Spring Security 3.1.0
- 27. Spring spring中的spring.jpa.open-in-view = true屬性是什麼?
- 28. Togglz with Spring @Configuration bean
- 29. ProxyFactoryBean不能正常工作的彈簧AOP
- 30. Spring狀態機池錯誤
你在http://www.javalobby.org/java/forums/t44746.html看到過「粘合在一起」嗎? – trashgod 2010-08-15 22:35:03