1
我知道使用destroy-method來要求spring調用一個特定的方法來清理。 Source。我在我的代碼中使用Spring Transaction Manager。我想知道如果使用這個屬性是有用的。如果是的話,我該如何使用它?如果不是什麼時候有用?我應該在哪種情況下使用DataSource的destroy方法?
我知道Spring自動調用該方法,但是何時應該使用該方法?哪些部分不是由Spring處理的,我需要這種方法?
dataSource屬性
<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{
...
}
我知道它會自動調用它,但是什麼時候應該使用它?哪些部分不是用Spring處理的,我需要這種方法?你能給我一個例子嗎? –
每當你有一個需要清理資源的bean時。 – Andreas