0 Tage Serie
java / beginner
Snippet

Speicherbereinigung und Ressourcenfreigabe mit @PreDestroy

Die Annotation @PreDestroy definiert einen Lifecycle-Callback, den Spring unmittelbar vor dem Zerstören einer Bean ausführt. Dies ermöglicht das Bereinigen speicherintensiver Datenstrukturen und die Freigabe von Ressourcen, um Speicherlecks beim Herunterfahren zu verhindern.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
@Component
public class BufferManager {
private final byte[] memoryBuffer = new byte[1024 * 1024];
@PreDestroy
public void releaseResources() {
java.util.Arrays.fill(memoryBuffer, (byte) 0);
System.out.println("Memory buffer cleared before container shutdown.");
}
}
spring
Erklärung
1
private final byte[] memoryBuffer = new byte[1024 * 1024];
Alloziert ein 1 MB großes Byte-Array im Speicher, sobald die Spring-Komponente instanziiert wird.
2
@PreDestroy
Markiert die Methode, die von Spring beim Herunterfahren des Anwendungskontexts ausgeführt werden soll.