Size: a a a

Java/Kotlin Web and more

2020 October 19

RS

Ruslan Stelmachenko in Java/Kotlin Web and more
Cyclone
Почему бы не?

Person person = service.getPerson(id);
httpServletResponse.setHeader("Last-Modified", person.getPhotoModifiedDate());
IOUtils.copy(person.getPhoto().getInputStream(), httpServletResponse.getOutputStream());
так тут другая ситуация совсем.
тут у вас в Person содержится готовый InputStream, откуда можно прочитать фотку.
в таком случае да, примерно такой код и нужен. но я не вижу, где в этом коде есть необходимость в методе Person getPerson(id, outputStream);
источник

C

Cyclone in Java/Kotlin Web and more
Речь скорее об изоляции логики. Эй, сервис, дай мне пёрсона по айди (или там мою бинарную картинку с её метаданными по ряду параметров из запроса), а что я с результатом буду делать, не твоё дело. Хочу, считаю фотку, хочу что-то другое.
источник

C

Cyclone in Java/Kotlin Web and more
И получается, что получить картинку с её метаданными, обработать метаданные, как нужно, и написать картинку в servletOutputStream я могу - и это работает - а вот если я хочу картинку предварительно обработать, то надо менять сигнатуру метода и прокидывать servletOutputStream внутрь метода сервиса. Не должно быть так.
источник

N

Nonverbis in Java/Kotlin Web and more
https://pastebin.com/Rvt7Gzkm
Подскажите, пожалуйста, почему падает в ошибку?

Ошибка локализуется в строке 67:

System.out.println(emailRepository.findById(2L));

По крайней мере, без нее запустится спринг.
источник

RS

Ruslan Stelmachenko in Java/Kotlin Web and more
Cyclone
Речь скорее об изоляции логики. Эй, сервис, дай мне пёрсона по айди (или там мою бинарную картинку с её метаданными по ряду параметров из запроса), а что я с результатом буду делать, не твоё дело. Хочу, считаю фотку, хочу что-то другое.
ну это опасное решение. например, инпут-стримы надо закрывать. если придет Person, у которого есть поле InputStream, а вы забудете его try-with-resource-нуть, а просто не будете читать это поле, ничего хорошего не будет (кроме случая, когда InputStream на самом деле внутри какой-нибудь byte array).
источник

RS

Ruslan Stelmachenko in Java/Kotlin Web and more
разве что если person.getInputStream() сам его и будет создавать на лету. тогда можно.
источник

RS

Ruslan Stelmachenko in Java/Kotlin Web and more
Cyclone
И получается, что получить картинку с её метаданными, обработать метаданные, как нужно, и написать картинку в servletOutputStream я могу - и это работает - а вот если я хочу картинку предварительно обработать, то надо менять сигнатуру метода и прокидывать servletOutputStream внутрь метода сервиса. Не должно быть так.
Вы можете попробовать создать свою имплементацию InputStream, которая будет враппером над оригинальным InputStream, но возвращать такой стрим, который обрабатывает фото.

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

C

Cyclone in Java/Kotlin Web and more
Ruslan Stelmachenko
Вы можете попробовать создать свою имплементацию InputStream, которая будет враппером над оригинальным InputStream, но возвращать такой стрим, который обрабатывает фото.

Но я не представляю, какая обработка фото может работать в режиме стрима. Все равно нужно ее всю в память считать скорее всего.
Обработкой фотки можно заниматься вне jvm.
источник

C

Cyclone in Java/Kotlin Web and more
Вернее, есть несколько решений, как в jvm (тогда, конечно, фотка этой библиотекой загружается в heap полностью - поэтому этот вариант мне не нравится), так и вне jvm.
источник

RS

Ruslan Stelmachenko in Java/Kotlin Web and more
Можно, но вне JVM нельзя работать с InputStream
источник

RS

Ruslan Stelmachenko in Java/Kotlin Web and more
все равно фотку надо записать куда-то. в файл например
источник

RS

Ruslan Stelmachenko in Java/Kotlin Web and more
и после обработки считать из другого файла
источник

C

Cyclone in Java/Kotlin Web and more
Отправляю по http в сервис обработки изображений. Туда стрим, обратно стрим.
источник

RS

Ruslan Stelmachenko in Java/Kotlin Web and more
Ruslan Stelmachenko
Вы можете попробовать создать свою имплементацию InputStream, которая будет враппером над оригинальным InputStream, но возвращать такой стрим, который обрабатывает фото.

Но я не представляю, какая обработка фото может работать в режиме стрима. Все равно нужно ее всю в память считать скорее всего.
ну тогда вот это решение может сработать
источник

C

Cyclone in Java/Kotlin Web and more
надо подумать
сенкс фор конверсейшен
источник
2020 October 20

AK

Aleksei Koltcov in Java/Kotlin Web and more
Ruslan
А токсичность в ряде случаев - вполне рабочий механизм защиты от идиотов.
Это не так.
источник

AK

Aleksei Koltcov in Java/Kotlin Web and more
Илья Игушев
Ярослав идите в баню, вы такой ранимый, до невозможности, вам сказали "бред" вместо "вы не правы", скажите спасибо что вам указали на вашу ошибку, тут не общение тут джаву изучают, тон, вежливость -вторично, занния -первичны, так что если вам не по душе Емельянов - гуляйте
Вообще-то Ярослав по делу написал. Только тут походу люди по-другому не привыкли. Им нравится когда их унижают "типа гуру".
источник

C

Captcha bot in Java/Kotlin Web and more
ghs, если ты не бот, нажми "шесть". Ботов удалено: 328.
источник

А

Азиз in Java/Kotlin Web and more
Привет.
Как отправить можно ролью на фронтенду
источник

N

Nonverbis in Java/Kotlin Web and more
Изучаю Spring Data.

Код:
https://pastebin.com/kHAYejSq

Проблемы:

1. Cannot resolve symbol 'save'

2. Unknown class: 'message'

В данном случае мне хочется просто сохранить данные в БД. Был бы признателен за помощь.
источник