Могу ли я создать серверные Java-классы, OR-сопоставления и клиентские AS-классы из одного описания модели?
-
05-07-2019 - |
Вопрос
У меня есть приложение на сервере Java и клиентское приложение Flex. Для моей модели данных у меня есть типичные объекты, такие как Пользователь и т. Д., Которые в основном совпадают в базе данных, коде Java на стороне сервера и коде AS на стороне клиента. Т.е. открытые поля моих классов AS и Java имеют одинаковые имена и имеют те же типы и значения, что и соответствующие поля в таблице базы данных, имя которой совпадает с именем этих классов.
Для соответствия классов Java и таблиц БД я могу использовать любой ORM. Существуют ли какие-либо инструменты для автоматического создания классов AS (и, в идеале, соответствующего шаблонного кода Remoting) из классов Java? Я кратко посмотрел на BlazeDS , но, похоже, есть такие инструменты, по крайней мере я ничего не мог найти об этом.
Конечно, в идеальном мире я бы описал свои элементы данных один раз, и все DDL, Java-код и AS-код были сгенерированы автоматически. Существует ли такой инструмент и достаточно ли он применим?
О да, и было бы здорово, если бы исходный формат мог быть файлами protobuf ...
Примечание. Похоже, это тот же вопрос, что и этот . Ответы там, по-видимому, указывают на то, что, по крайней мере, нет общего инструмента, который «все используют» или это имеет репутацию высокого качества.
Решение
Вы можете начать здесь: http: // www .graniteds.org / слияния / дисплей / DOC / 2 + GAS3 + код + генератор
Другие советы
Единственные известные мне инструменты для генерации классов AS из серверного кода - это встроенные в конструктор Flex мастера для автоматического создания удаленных классов AS из CFC ColdFusion для использования с сервисом AMF на основе ColdFusion. Р>
Что может быть полезно запомнить, так это то, что как только сериализованный объект был получен Flex и для него был создан экземпляр mx.utils.ObjectProxy
(это относится к flex Класс RemoteObject
и службы на основе AMF, но я предполагаю, что расширение Protocol Buffer будет следовать той же схеме), процесс приведения прокси к классу Actionscript не так уж и сложен. Пока ваш класс Actionscript имеет свойства или методы доступа с именами, которые соответствуют свойствам сериализованного объекта, и псевдоним удаленного объекта, который соответствует типу сериализованного объекта, вы можете преобразовать прокси-объект объекта в удаленный класс без необходимости делать это. любая дополнительная работа.
Как я уже сказал, я не знаю инструмента, который делает то, что вы хотите, но не составит труда создать инструмент для чтения типов и открытых свойств из ваших классов Java или извлечь те же метаданные из буферных файлов вашего протокола и запишите некоторый код Actionscript из этих метаданных. Если вы не можете найти решение, которое соответствует вашим потребностям, вы можете подумать о написании Ant-задачи, скрипта или чего-то другого, что сделает это за вас. Вот что я бы сделал в любом случае.