Spring interceptor是按List的顺序来执行的。如果某一个interceptor直接return而不去调用invocation.proceed()获得返回值的话,接下来的interceptor也不会要执行。
例如代码表的查询和缓存,应该先执行查找cache,然后再判断是否启动事务进行查询数据库。那么就应该是这样的顺序:
<bean id="labelValueCodeDAOCache" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target">
<ref bean="labelValueCodeDAO" />
</property>
<property name="interceptorNames">
<list>
<value>codeMethodCachePointCut</value><!--查找缓存 -->
<value>readOnlyTransactionInterceptor</value><!--启动事务 -->
</list>
</property>
</bean>
Spring interceptor执行顺序
最新推荐文章于 2025-07-16 15:55:25 发布
本文探讨了Spring框架中拦截器(Interceptor)的执行顺序及其重要性。通过具体实例展示了如何配置拦截器来确保代码首先检查缓存,然后才进行数据库查询操作。这种配置对于提高应用程序性能至关重要。
8031

被折叠的 条评论
为什么被折叠?



