我知道destroy-method用来让spring调用一个特定的方法来清理。 Source。我在我的代码中使用Spring Transaction Manager。我想知道使用这个属性是否有用。如果是,我该如何使用它?如果不是什么时候有用呢?
我知道Spring会自动调用该方法,但什么时候应该使用它? Spring不会处理哪些部分我需要这样的方法?
数据源属性
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
...
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
服务
@Service
public MyServiceImpl implements MyService{
@Transactional
public void saveData(MyData data){
...
}
@Transactional(readOnly = true)
public List<MyData) readData(long id){
...
}
}
存储库
@Repository
public MyReposImpl implements MyRepos{
@Autowired
SessionFactory sessionFactory;
public void saveData(MyData data) throws HibernateException{
sessionFactory.getCurrentSession().save(data);
}
public List<MyData> readData(long id) throws HibernateException{
...
}
答案 0 :(得分:0)
您不致电destroy
。您告诉Spring该方法的名称,因此 it 可以在不再使用bean时调用该方法,即需要销毁该方法。对于单例,当Spring容器停止时会发生这种情况。