2016-04-18 6 views
0

Ich bin dabei, eine sehr alte Java-App auf Spring Boot und Hibernate 5 umzuschreiben. Ein Teil dieser Aufgabe erfordert, dass ich unsere XML-Konfiguration (Spring und Hibernate) durch Annotationen ersetze.Wird eine Anmerkung hinzugefügt, die die Java-Serialisierung unterbricht?

Ich habe die folgende Frage. Nehmen wir an, dass die Anwendung eine Klasse als solche enthält:

public class MyObject implements Serializable { 
     private static final long serialVersionUID = 81848571841847187L; 
     private String id; 
     private String name; 
     //getters and setters... 
} 

Diese Klasse über ein Netzwerk serialisiert und in einem „gemeinsamen“ jar enthalten, die Klassierer umfassen muss, um an ihrem Ende deserialisieren.

Nehmen wir an, dass ich in die Klasse

@Table(...) 
@Entity 
public class MyObject implements Serializable { 
     private static final long serialVersionUID = 81848571841847187L; 

     @Id 
     @Column(...) 
     private String id; 

     @Column(...) 
     private String name; 
     //getters and setters... 
} 

Meine Frage ist, ein paar Hibernate und JPA Anmerkungen hinzufügen: wenn der Anrufer (der deserialisiert die oben Object) hat nicht haben diese Anmerkungen in seinem Classpath, wird Serialisierung fehlschlagen?

Antwort

0

Nur Annotationen mit RETENTION = RUNTIME werden in Bytecode verwendet, aber Serialisierung funktioniert mit Objektfeldern, nicht mit Klassen.

aber es ist wichtig zu verstehen, dass Anmerkungen von benutzerdefinierten Serializer verwendet werden können. zum Beispiel ist dies @ @ Transient-Ausschluss implementiert.

so ist die nächste Sache zu überprüfen, welche Art von Serialisierungsmechanismus verwendet wird.

elad

Verwandte Themen