• Можно ли так использовать спринг?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день
    имеет ли смысл только для работы с бд подключать springframework

    Может быть для работы с БД стоит подключать ORM фреймворки. Например, Hibernate, EclipseLink, MyBatis, ormlite.

    По факту spring это контейнер бинов (реализация IOC & DI). Соответственно, если вы хотите использовать DI в своем приложении, то можете использовать спринг. Ну или другую либу для DI (guice, dagger etc.)

    Например, если вы пишете JavaFX приложение, то есть хорошая либа для ьыстрой интеграции спринга
    https://github.com/rgielen/javafx-weaver/

    А просто для работы с БД используйте связку hibernate + hikaricp
    Ответ написан
    6 комментариев
  • Не обогащаются таблицы при создании Entity?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день!
    Да, конечно же сперва выполняется sql файл.
    Можно реализовать по разному:

    1) Попробуйте вынести DDL запросы в sql файл. (schema.sql)
    2) Либо наоборот содержимое data.sql инициализируйте при помощи java кода. Например, имплементируйте интерфейс CommandLineRunner
    3) Попробуйте использовать либу FlyWay для миграций

    spring.jpa.hibernate.ddl-auto=create-drop
    Это означает, что все созданные таблицы будут дропнуты и на момент старта в БД нет таблиц, куда ваши инсерты должны быть добавлены.

    Полезная информация - https://www.baeldung.com/spring-boot-data-sql-and-...
    Ответ написан
    2 комментария
  • Сложность изучения Unity/WEB?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    "IT" и "быстрее УСТРОИТСЯ на работу" не могут стоять в одном предложении в принципе. Пока не начал это изучать - еще не понимаешь многих вещей:
    • разработка это не хуяк-хуяк
    • кроме языка есть тонна всего в экосистеме
    • кроме экосистемы надо знать дополнительные инструменты
    • ты не один такой хитрый и первая работа в IT это больше удача
    • на работу принимают подходящих, что в каждом случае - субъективный фактор


    готовься что твое "быстро" будет чем-то вроде "год если повезет" и стартовой зарплаты хватит на "снимать комнату"
    Ответ написан
    1 комментарий
  • Почему страница .html перестаёт видеть style.css?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Spring
    Седой и строгий
    Рано вам ещё в Spring, очень рано. Вы же не отличаете относительные ссылки от абсолютных, а это основы известные любому верстальщику.
    Ответ написан
    1 комментарий
  • Как правильно вставлять картинки в html в Spring?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день.
    Прежде всего настоятельно рекомендую провести поиск по этому сайту, а также погуглить, так как ответ на ваш вопрос легко ищется поисковиком и в общем-то найдете кучу ответов. Помню, как буквально пару месяцев назад здесь же отвечал на аналогичный вопрос.

    Теперь, что касается вашего вопроса:

    Я так понимаю так же нужно настраивать Thymeleaf?

    Шаблонизатор вам нужен в любом случае. Будь то thymeleaf или freemarker, mustache и др. Можете взять thymeleaf.

    Предположу, что ожидается некое динамическое добавление картинок в шаблон. Т.е. художники загружают свои работы, а далее они отображаются в шаблоне.
    Если так, то разделим вашу задачу на несколько частей:
    1) Реализовать загрузку картинок, хранение данных о картинках в БД (например, путь к картинке)
    https://spring.io/guides/gs/uploading-files/
    https://stackabuse.com/uploading-files-with-spring-boot
    https://www.baeldung.com/spring-file-upload
    2) Реализовать вывод картинки в шаблоне.
    В данном вашем примере у вас выводится изображение в формате svg (placeholder)
    Вам нужно вместо нее добавить img тег
    Примерно так:
    <img th:src="${image}" alt="Картинка"/>
    Конечно же вместо переменной image вам нужно подставить свою переменную.
    Если нужно вывести блок со всеми работами художника, то вам нужно будет вывести цикл с его работами.
    Итерируем по списку работ художника - https://habr.com/ru/post/351132/
    Ответ написан
    7 комментариев
  • Можно ли найти удаленную стажировку / работу в сфере Data Science если ты новичок и не живешь в городе?

    Zoominger
    @Zoominger
    System Integrator
    не студент технической специальности , у меня нет опыта в сфере

    1. Нет.
    2. Нет.
    3. hh.ru.

    У меня есть конкретная цель получить финансовую независимость

    С такими целями вам в IT делать нечего.
    Ответ написан
    Комментировать
  • Почему вылетает ошибка при ленивой инициализации при работе с БД?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Если не ошибаюсь, то вы столкнулись с этой проблемой:
    https://www.baeldung.com/spring-open-session-in-view

    Говоря проще, если у вас включен open-session-in-view, то вам не нужно использовать аннотацию Transactional, но при этом это является антипаттерном

    Because OSIV creates a Session at the beginning of the request, the transactional proxy uses the current available Session instead of creating a brand new one.
    Ответ написан
    Комментировать
  • Должен ли бэкенд разработчик разрабатывать админку?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    sarcasm_on
    Да, в статье 99 Трудового кодекса так и написано
    2)... бэк енд должен самостоятельно сделать админку при разработке бэк енд
    8)... бэк енд разработчик должен сам понять и не утруждая заказчика сделать админку
    sarcasm_off

    Автор, проснись! Что за глупые вопросы? Какой «должен»? Как договоришься, так и будет. Конечно, заказчик хочет навалить на исполнителя побольше за те же деньги.
    Ответ написан
    Комментировать
  • Как понять, что пора повышать зарплату?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Я Junior Full-stack разработчик

    Опыт работы у меня примерно полгода

    уже год преподаю Java на одних курсах для людей, что хотят профессию сменить.

    Это не слезы, просто дождь течет по лицу :) Все абзацы смехотворны, если честно. Сам пишу с 2011 года на JS + бэк на PHP\Python, могу ли я себя назвать фуллстэком - наверное нет. Но ок - >

    Или может быть тут есть знающие люди и могут подсказать реальную зп, на которую можно претендовать.

    Как понять что можно просить больше(и заслужил) = опыт коммерческой разработки(всем пофиг сколько пет проектов вы написали до этого) от года + решение бизнес задач без помощи сеньора\мидла + регион.

    Если вы пишите серьезную бизнес логику не обращаясь к мидлу и отработали больше года, то однозначно стоит. Если каждый чих сопровождается комментарием к pull request - нет.

    Для джуна даже московского запрлата в 800-900 долларов = это хорошая зарплата, при условии того что вы обращаетесь за частой помощью к своим товарищам, и пока не можете выполнять серьезные таски сами.
    Ответ написан
    2 комментария
  • Аутентификация Spring Security через метод Post?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Если подразумевается, что будет авторизация через андроид или js-фреймворк, то нужно разработать REST сервис.
    В данном случае POST запросом из клиента отправляем логин и пароль пользователя в бекэнд. Там генерируем jwt и возвращаем его на клиент. Далее другой эндпоинт будет каждый раз проверять jwt на корректность и выдавать нужные данные.
    Вот, неплохой пример реализации jwt auth - https://github.com/hantsy/spring-webmvc-jwt-sample
    Ответ написан
    2 комментария
  • Hibernate, как инициализировать вычисляемое поле в Entity?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Хочу добавить в этот класс поле, которого нет в базе

    Подозреваю, что вам нужно сделать следующее:
    1) создать поле с аннотацией @Transient
    Например,
    @Transient
    private long calc;

    https://stackoverflow.com/questions/2154622/why-do...
    Таким образом это поле не будет хранится в БД.

    ...которое вычисляется на основе других полей.

    2) К этому полю добавить аннотацию @Formula
    https://thorben-janssen.com/hibernate-tips-calcula...

    Прочитайте вот, эту статью - https://vladmihalcea.com/how-to-map-calculated-pro...

    Другой вариант выполнить пункт 1. Но вместо использования аннотации @Formula создать метод с аннотацией @PostConstruct и затем уже инициализировать ваше поле с нужным значением
    Ответ написан
    1 комментарий
  • Как вывести картинку из бд в Spring?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    У меня есть бд блога на локалхосте я туда успешно гружу всю информацию для поста (название, дату , текст и картинку)

    Картинка не должна хранится в БД. Вы конечно можете хранить картинку в БД в blob, но не нужно! Лучше в БД храните например, путь до картинки, а еще лучше путь можно сохранить в properties или yml, а в БД хранить название картинки.

    Далее небольшой совет:
    postAddArticle(@AuthenticationPrincipal User user, Date timeArticle, @RequestParam String title, String author,
                                     @RequestParam String anons, @RequestParam String text,
                                     @RequestParam("file") MultipartFile file, Model model)

    Если у вас более 4-х аргументов, то лучше собрать его в Dto. Это также позволит вам проводить валидацию через javax validation.

    А теперь, ответ на ваш вопрос: чтобы вывести картинку хранимую в БД необходимо массив байт, который вы сохранили в БД конвертировать в base64 и закинуть в тег img.

    <img src="data:image/jpeg;base64,[тут_код_картинки_в_base64]">


    Вот, тут дан похожий ответ: https://stackoverflow.com/questions/26400994/how-t...

    Через контроллер добавляем
    byte[] encodeBase64 = Base64.encode(repository.getImage());
    String base64Encoded = new String(encodeBase64, "UTF-8");
    model.addObject("image", base64Encoded );


    Выводим в шаблонизаторе
    <img src="data:image/jpeg;base64,${image}" />

    Если решите реализовать загрузку файла, как я указал в самом начале своего ответа, то для начала можете прочитать эту статью - https://www.callicoder.com/spring-boot-file-upload...
    Ответ написан
    7 комментариев
  • Стоит ли устраиваться в веб-студию где в основном доработка сайтов на cms?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Однако возникают некоторые сомнения, многому ли я научусь на этом месте и стоит ли вообще туда устраиваться или стоит искать дальше?

    Конечно нет, сразу в Гугл надо устраиваться, не меньше.

    Релевантен ли опыт работы с cms для будущей карьеры в вебе?

    Именно для этого имеет смысл пойти поработать, и уже самому понимать что и как.
    Брюс Виллис вот барменом работал. Релевантен был его опыт?

    Такие детские вопросы именно из-за полного отсутствия опыта. Тебя на работе что в кабальный контракт закинут?
    На работу идут чтобы заработать денег и получить опыт, а не чтобы учиться. Если на работе еще и учишься, то это совсем круто. А то путают многие школу и работу.
    Если предложили нормальные условия - пойди, поработай хотя бы год. Потом будешь решать что делать дальше. Карьера не делается за 21 день.
    Ответ написан
    Комментировать
  • Как безболезненно перейти с Python на Rust?

    vabka
    @vabka
    Токсичный шарпист
    Как безболезненно перейти с Python на Rust?

    Учиться, учиться, учиться.
    1) Python медленный

    Питон на удивление быстрый, особенно если использовать PyPy, а сильные тормоза возникают только в особых случаях.
    2) В python нет адекватного управления памятью

    Автоматический GC - это один из самых адекватных способов управления памятью, который только придумывало человечество.
    3) В python мне приходится испльзовать кучу мегабайт библиотек (я чувствую себя тупым и бесполезным при импортировании библеотек)

    А вы импортируйте их с мыслью "я не хочу тратить кучу времени на реализацию этого всего с нуля"
    В расте вам точно также придётся импортировать кучу библиотек, как и в любом другом языке, где есть библиотеки.
    4) Python кажется игрушечным языком

    Зря так думаете. Python очень мощный.
    5) Python не подходит род микроконтроллеры (micropython - просто игрушка)

    Раст+МК для новичков тоже очень страшная вещь - посмотрите на вопросы от товарища eegmak, например, чтобы в этом убедиться.
    Micropython - вполне себе production ready инструмент для тех случаев, когда его хватает, и не нужно ужиматься в очень дешёвые чипы.
    6) Проблемы из-за GIL'а

    С какими именно проблемами вы столкнулись на практике?)
    Скорее всего, их можно решить и менее радикальными методами.

    ИМХО: вы услышали от кого-то что Rust-топ язык, а Python - игрушечный, а настоящие программисты используют ручное управление памятью и сами реализовывают всякие сложные алгоритмы и протоколы.
    Хотя обычно ещё пишут, что настоящие программисты пишут только на C, только в виме, и никогда не ищут ответы на русскоязычных форумах.

    Если я прав - задумайтесь ещё раз, какую именно вашу проблему может решить раст, которую не может решить Python.

    Если я вас не отговорил - берите rustbook (лучше способа не придумали ещё).

    Если хочется перейти на другой язык, не обязательно раст - посмотрите в сторону других языков со сборкой мусора - например C#, Go, или D. Их все можно использовать в том числе и на МК, с разной степенью извращений.
    Ответ написан
  • Как связать html-файлы в Spring?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день!
    Судя по коду вы используете thymeleaf.
    Но я так и не увидел вашего вопроса. Вы создали фрагмент header.html при помощи th:fragment, а затем вставили этот фрагмент при помощи th:insert. А в чем заключается проблема? Что-то не работает или ...?

    И в зависимости от версии thymeleaf th:insert="header :: header" это может не работать или просто выдавать предупреждение. Используйте th:insert="~{header :: header}"

    Есть кстати, доп. либа, которая позволяет более гибко настраивать шаблоны - Thymeleaf Layout Dialect
    https://github.com/ultraq/thymeleaf-layout-dialect

    Полезная информация - https://habr.com/ru/post/351844/
    Ответ написан
    Комментировать
  • Какую специализацию выбрать при знании "по верхам"?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    блоггер
    курьер
    тиктокер
    коучер
    Ответ написан
    3 комментария
  • Переменная rèturn и прочие зарезервированные слова, норм?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Думаю, что в любой нормальной команде за это могут избить.
    Ответ написан
    3 комментария
  • Берут ли на стажировки перваков?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Интересно узнать, возможно ли будет стажироваться с первого курса?

    Зачем?

    Рассмотрим вас со стороны бизнеса - вам 18 лет, за вами нужно следить, денег вы не приносите, а скорее всего еще и обходитесь компании в копейку.

    Почему берут на стажировку 4-5 курс = потому что они потенциальные наемные сотрудники. И проходя бесплатную(или нет) стажировку, компания уже берет в штат "знакомого" человека, который на выходе даст неплохой профит за меньшие деньги на старте.

    PS: Альтернативный вариант. Вы гениальны и уровень вашего мышления превосходит ваших конкурентов. В данном случае компания дает вам намек что готовы взять вас сперва на стажировку, а потом на работу, а учеба переходит в этап - заочно.

    Этот вариант был бы самым идеальным для вас, так как студент заочник, дает фору студенту очнику в 4-5 годах корпоративной разработки, что на Российском рынке означает что возьмут 99% вас, а не очника.
    Ответ написан
    Комментировать
  • Чтобы написать календарь на 5 лет (все 5 лет выводить через цикл for) или один год вывести через цикл а остальное... как написать?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Практически каждый день вижу ваши вопросы про разработку календаря.
    Если честно, то мне кажется, что вы реализовываете календарь не так как нужно из-за чего позвольте спросить, какого рода календарь вы пишете? Просто, в предыдущих ваших вопросах я видел огромное количество циклов for, которые выводят месяц, год, дату и прочую информацию (високосный год и т.д.). Ощущение будто вы пытаетесь изобрести велосипед. Возможно, что если вы дадите больше информации, то мы сможем дать вам более корректные ответы.
    Вот, например, если это десктопное приложение, то например, при использовании JavaFX вы можете применить готовые компоненты для него.
    Например,
    CalendarFX
    Вот, еще пример - https://gist.github.com/james-d/c4a2cf66efecbf3aa362
    Вот, еще один компонент - https://github.com/SirGoose3432/javafx-calendar
    Вот, еще - https://stackoverflow.com/questions/33281588/creat...

    Также обратите внимание, что вместо того, чтобы печатать календарь вручную и самому учитывать все аспекты, вы можете воспользоваться классами в Java, которые предназначены для этих целей.
    https://docs.oracle.com/javase/7/docs/api/java/uti...
    https://docs.oracle.com/javase/8/docs/api/java/uti...
    https://docs.oracle.com/javase/8/docs/api/java/tim...
    https://docs.oracle.com/javase/8/docs/api/java/tim...
    и т.д.

    Если вы хотите распечатать календарь в консоли, то возможно, этот ответ наведет вас на мысль
    https://stackoverflow.com/questions/26962388/print...
    Ответ написан
    Комментировать