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
@Componentpublic class BufferManager {private final byte[] memoryBuffer = new byte[1024 * 1024];@PreDestroypublic 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.