Является ли использование, @PreDestroy плохой практикой(как с finalize)?
Во-первых, если уж проводить аналогию между обработчиком событий жизненного цикла SpringBean и финализатором POJO, то проводить её надо между @PreDestroy и finalize(). Во-вторых, нет, не является. Чтобы понять это, достаточно знать почему не рекомендуется использовать finalize():
finalize() класса не произойдёт вызова этого же метода у суперкласса, что в некоторых случаях может приводить к неправильному освобождению ресурсов;В то же время @PreDestroy вообще не имеет отношения к сборке мусора, не влияет на производительность и в целом ведёт себя в полном соответствии с правильными архитектурными принципами.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей