在我的应用程序中,我最初使用ProxyFactoryBean将事务应用于我的DAO Bean,如下所示;Spring的@Transactional在ProxyFactoryBean上的性能
<bean id="buyProductDAO" class="com.trading.persistence.impl.jdbc.BuyProductDAOImpl" scope="prototype">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
</bean>
<bean id="buyProductDAOProxy" class="org.springframework.aop.framework.ProxyFactoryBean" scope="singleton">
<property name="proxyInterfaces">
<value>com.trading.persistence.impl.jdbc.BuyProductDAO</value>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
<value>buyProductDAO</value>
</list>
</property>
</bean>
在这种情况下,如果我从我的代码中发现代理bean,它会返回我的事务性bean。此外,目前,在课堂上应用交易。
我想重构我的代码使用@Transactionl。转换后的性能影响是什么?我打算在方法级应用交易,与目前实施的类级相反。
感谢您的回复。这种变化如何影响绩效? – nwGCham
正如Spring Doc所说,现有的Spring工具正在以您的名义初始化TransactionProxyFactoryBeans。所以在这个领域,如果不是平等的话,它是微不足道的。性能方面的考虑主要来自于以下方面:1)基础持久性选择的非最佳使用(spring-jdbc/orm/hibernate),2)DB连接池的不使用,3)低效的批处理操作等 – dimitrisli