2016-04-18 2 views
0

Я сейчас переписываю очень старое приложение java для Spring Boot и Hibernate 5. Часть этой задачи требует, чтобы я заменил нашу конфигурацию XML (как Spring, так и Hibernate) аннотациями.Будет ли добавлен разрыв аннотации Java Serialization?

У меня есть следующий вопрос. Давайте предположим, что приложение содержит класс как таковой:

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

Этот класс Сериализированные по сети, и включается в «общий» банку, который classers должен включать в себя, чтобы десериализации на их конце.

Давайте предположим, что я добавляю несколько Hibernate и JPA аннотации к классу

@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... 
} 

Мой вопрос: если абонент (который десериализует выше Object) делает не есть эти аннотации в его пути к классам, произойдет ли сериализация?

ответ

0

Только аннотации с RETENTION = RUNTIME используются в байтовом коде, но сериализация работает с полями объекта, а не с классами.

, но важно понимать, что аннотации могут использоваться пользовательским сериализатором. , например, это исключение @Transient.

так что необходимо проверить, какой тип механизма сериализации используется.

elad