Что является легкими опциями, нужно сохранить [закрытые] объекты Java

15
задан Robert Harvey 26 September 2013 в 17:40
поделиться

9 ответов

db4o является объектной базой данных, таким образом, нет никакой установки схемы, и он адаптируется хорошо к изменениям в структуре объекта со временем.

9
ответ дан 1 December 2019 в 01:46
поделиться

При рассмотрении чего-то простого, Вы могли бы также хотеть данные в формате, который можно считать (не двоичный файл или база данных). Если это так, необходимо посмотреть на JAXB (XML Java, Связывающий), который является частью Java 6 и позже. Существуют другие технологии, которые могут делать это лучше, такое как Бобы XML, но этот встроен.

Смотрят на эту страницу от API Java. Это является довольно прямым к сериализации и десериализации объектов Java.

http://java.sun.com/javase/6/docs/api/javax/xml/bind/JAXBContext.html

В основном Вы используете следующее:

    JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );

    // unmarshal from foo.xml
    Unmarshaller u = jc.createUnmarshaller();
    FooObject fooObj = (FooObject)u.unmarshal( new File( "foo.xml" ) );

    // marshal to System.out
    Marshaller m = jc.createMarshaller();
    m.marshal( fooObj, System.out );

Просто удостоверяются, что Ваш FooObject имеет @XmlRootElement аннотацию. Свойства компонента Java автоматически интерпретируются, но можно использовать другие аннотации, чтобы управлять, как XML смотрит и образцовые более сложные объекты.

6
ответ дан 1 December 2019 в 01:46
поделиться

ObjectOutputStream и ObjectInputStream могут сделать это. Это встроено в Java и позволяет Вам сериализировать/десериализовывать объекты довольно легко.

плохая вещь о них состоит в том, что при изменении объектов, Вы не можете импортировать существующие старые объекты. Необходимо будет думать о способе остаться совместимыми с существующими объектами, которые могли бы уже быть сохранены на компьютере пользователя, таком как добавление номера версии к классам и созданию способности преобразовать старые объекты в новые.

[еще 117] информация здесь:

РЕДАКТИРОВАНИЕ: можно также рассмотреть добавление следующего атрибута ко всем классам сразу. Это может позволить Вам затем добавлять атрибуты к классам и все еще мочь загрузить старые Объектные файлы. На земле RMI это работает, но я не уверен в файлах. Никогда не удаляйте атрибуты все же.

static final long serialVersionUID = 1L;
5
ответ дан 1 December 2019 в 01:46
поделиться

Посмотрите этот подобный вопрос Легкая альтернатива для спящего режима . Большая часть платформы легкого веса, о которой я знаю, - iBatis

3
ответ дан 1 December 2019 в 01:46
поделиться

Один простой подход должен сериализировать (как в сериализуемом) Ваши объекты к диску.

http://www.devx.com/Java/Article/9931/1954

2
ответ дан 1 December 2019 в 01:46
поделиться

Вы могли попробовать XStream, который является библиотекой с открытым исходным кодом. Все, что это делает, превращают Ваш POJOs в XML, который Вы можете затем сохраненный на диск. Это очень просто в использовании и требует, чтобы только несколько строк кода использовали.

3
ответ дан 1 December 2019 в 01:46
поделиться

Я должен сказать, что начальная кривая обучения для В спящем режиме, относительно мелко. Необходимо смочь разбудить систему тестирования и работающий меньше чем через день. Это только, когда Вы хотите больше расширенных функций, где это начинает становиться более крутым. Я рекомендовал бы определенно смотреть, я имею в виду то, что день, если Вы заканчиваете тем, что не выбрали его?

Однако Вы рассмотрели просто сериализацию Ваших объектов непосредственно к диску, если Вы просто хотите что-то быстрое, n грязный?

0
ответ дан 1 December 2019 в 01:46
поделиться

Попробуйте Простую персистентность XML http://simple.sourceforge.net . Ее действительно простое и не требует никакой конфигурации. Просто возьмите свой существующий POJOs и аннотируйте их, затем можно считать и записать им в файл. Циклические графы объектов поддерживаются, а также все наборы Java. Это может использоваться как так.

Serializer serializer = new Persister();
MyObject object = serializer.read(MyObject.class, new File("file.xml));

и запись так же, как легкий

serializer.write(myInstance, new File("file.xml"));

, Это - чрезвычайно легкий подход, никакие зависимости кроме стандартного Java 1.5. По сравнению с другим объектом к технологиям XML, таким как JAXB, XStream, Солонка, которые являются иждивенцем на большом количестве других проектов Простой XML, очень легка и эффективная память.

4
ответ дан 1 December 2019 в 01:46
поделиться

Самая простая опция, о которой я знаю, использует Xstream для создания XML-файла из ЛЮБОГО Java obect.

1
ответ дан 1 December 2019 в 01:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: