gpt4 book ai didi

java - 什么情况下应该使用DataSource的destroy-方法?

转载 作者:太空宇宙 更新时间:2023-11-04 13:24:03 25 4
gpt4 key购买 nike

我知道destroy-method是用来要求spring调用特定的方法来清理的。 Source 。我在我的代码中使用 Spring 事务管理器。我想知道使用这个属性是否有用。如果是,我该如何使用它?如果没有的话什么时候有用?

我知道 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{
...
}

最佳答案

不调用destroy。您告诉 Spring 该方法的名称,以便它可以在不再使用该 bean(即需要销毁该 bean)时调用该方法。对于单例,当 Spring 容器停止时会发生这种情况。

关于java - 什么情况下应该使用DataSource的destroy-方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32817068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com