簡體   English   中英

在哪些情況下應該使用銷毀數據源的方法?

[英]In which cases should I use destroy-method of DataSource?

我知道destroy-method用於要求spring調用特定方法進行清理。 來源 我在代碼中使用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{
   ...
}

不叫destroy 你告訴春方法的名稱,以便可以調用方法時在bean不再使用,即需要被銷毀。 對於單例,這在Spring容器停止時發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM