Mic*_*fel 16 spring spring-aop spring-transactions
在开始我的应用程序时,我会收到大量警告o.s.aop.framework.Cglib2AopProxy 'Unable to proxy method [public final void org.springframework.jdbc.core.support.JdbcDaoSupport.setDataSource(javax.sql.DataSource)] because it is final: All calls to this method via a proxy will be routed directly to the proxy.',大约有十几个功能.
现在我完全理解基于代理的方面不能应用于最终方法.但是,我没有(至少是故意的)尝试编织任何方面JdbcDaoSupport.我怀疑它来自<tx:annotation-driven />.我能做些什么来消除这些警告,或者更好的是,将这些类别排除在编织方面?
Ado*_*lfo 16
这很可能是由@Transactional注释引起的,Spring将DAO包装在代理中以添加事务行为.
我建议让你的DAO实现一个接口(为你的DAO创建和使用一个接口),这将允许Spring使用JDK动态代理而不必使用CGLib.
使用CGLIB有一个限制,即无法建议在目标类中标记为final的方法,因为无法覆盖最终方法(CGLIB在运行时创建目标类的子类),但在使用JDK动态代理的情况下,此限制将消失.
也许您已经扩展JdbcDaoSupport并添加了@Transactional注释。
您可以将Cglib2AopProxy记录器设置为日志级别 ERROR 以避免出现警告消息。例如,如果使用 log4j 和 log4j.properties:
log.logger.org.springframework.aop.framework.Cglib2AopProxy = ERROR
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15001 次 |
| 最近记录: |