Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> написать хранилище файлов на джаве, документные дб 
:(
    Опции темы
Aoizora
Дата 18.5.2018, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 18.11.2016

Репутация: нет
Всего: нет



Доброго времени суток. Скоро мне нужно будет дописать хранилище небольших файлов произвольного размера на джаве. Используется MongoDB. До этого я не писал на джаве несколько лет, а занимался только низкоуровневой разработкой. Что мне стоит изучить за оставшееся время, чтобы дописать это хранилище?

В проекте используется REST API для создания эндпоинтов. Мне нужно будет доделать этот интерфейс. В общих чертах, как это можно сделать?

Как инкапсулировать файлы для передачи в хранилище, получения оттуда и обновления? В языке Go или в C++ можно было бы использовать структуры, но в джаве это слишком неудобно.

Как в джаве работать с JSON/BSON документами?

Какой фреймворк использовать для создания REST API?

На чем можно потренироваться?

На языке Go круд-операции можно сделать просто:

Код

// Connect is used to establish connection with database server
func (m *MoviesDAO) Connect() {
    session, err := mgo.Dial(m.Server)
    if err != nil {
        log.Fatal(err)
    }
    db = session.DB(m.Database)
}

//FindAll returns all movies from model and an error if occured
func (m *MoviesDAO) FindAll() ([]models.Movie, error) {
    var movies []models.Movie
    err := db.C(Collection).Find(bson.M{}).All(&movies)
    return movies, err
}

// Insert inserts new Movie into Database
func (m *MoviesDAO) Insert(movie models.Movie) error {
    err := db.C(Collection).Insert(&movie)
    return err
}

func (m *MoviesDAO) Delete(movie models.Movie) error {
    err := db.C(Collection).Remove(&movie)
    return err
}
func (m *MoviesDAO) Update(movie models.Movie) error {
    err := db.C(Collection).UpdateId(movie.ID, &movie)
    return err
}


А как то же самое написать на джаве?
PM MAIL   Вверх
AntonSaburov
Дата 24.5.2018, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



> Как инкапсулировать файлы для передачи в хранилище, получения оттуда и обновления? В языке Go или в C++ можно было бы использовать структуры, но в джаве это слишком неудобно.

В смысле, структуры - в Java тоже структуры. Можно байтовый массив например

> Как в джаве работать с JSON/BSON документами?

Использовать библиотеки типа Jackson, Gson

> Какой фреймворк использовать для создания REST API?

В принципе реализация спецификации REST API есть в любом сервере приложений - Wildfly например. Или Tomcat с доп. библиотекой..


> На чем можно потренироваться?

На том же Wildfly. Или на Tomcat - но тогда надо доставить туда библиотеку Jersey
Вот кстати - https://www.ibm.com/developerworks/web/library/wa-aj-tomcat/


Если совсем честно - хранилище файлов само по себе достаточно непростое решение. В базе хранить или на диске, как передавать большие файлы - такого рода вопросы достаточно много головной боли могут причинить.
PM MAIL WWW ICQ   Вверх
sergioK1
Дата 28.9.2018, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



Цитата(AntonSaburov @ 24.5.2018,  11:23)
На том же Wildfly. Или на Tomcat - но тогда надо доставить туда библиотеку Jersey

Не надо  там бардак с версиями и совместимостью,
лучше Spring , по сути это давно Standard de facto,  Jersey это только web, весна это и веб и сервисы и аспекты, и потоки и DB причем на выбор и JDBC и security . Wildfly он же JBoss слишком тяжелый с его EJB .

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1255 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.