Ответы пользователя по тегу Spring
  • Нужно ли учить Reactive Spring, Cloud?

    @frozen_coder
    Java-developer
    Я попал на Spring WebFlux и Cloud, когда на уровне "что-то слышал и хочу получить опыт" и меня взяли. Это всё зависит от работодателя же, проекта и прочего. Как бонус - лишним не будет. Но я думаю, что это не должно стать преградой в основном. Только если это определённое требование к кандидату на определённую позицию. Есть книгаот Олега Докуки, почитаете, попробуете и будет достаточно.
    А монгу я вкуривал по мере необходимости. Просто начните ходить на собеседования и там будет понятно :)
    Ответ написан
  • Что разработать на Spring Boot 2, Java?

    @frozen_coder
    Java-developer
    Ну вот вам варианты:
    1. Что можно тянуть в одного на Java?
    2. Как эффективно выучить технологии для backend'a?

    Только вот подумайте лучше, если оно так тяжко идёт, то может и не ваше вообще? В работе очень много рутинных однообразных задач, которые просто нужно сделать. Вы что будете в этом случае работу бросать? Программирование - это во многом ремесло.
    Ответ написан
  • Какие проекты написать для портфолио на Java?

    @frozen_coder
    Java-developer
    Повторю пару своих ответов с идеями для своих проектов, может найдёте что-то интересное:

    1. Раз
    2. Два
    Ответ написан
  • Как реализовать spring bean для файлового менеджера?

    @frozen_coder
    Java-developer
    Смотрите класс Files, а точнее методы walk или walkTree

    Вот тут написано, как реализовать свой обходчик файлового дерева.

    К Spring это никакого отношения не имеет. Стандартная библиотека.
    Ответ написан
  • Значительны ли отличия Java 7-8 от 11-12?

    @frozen_coder
    Java-developer
    там уже все на 11 версии сидят, небось скоро и на 12 перейдут.


    Извините, но, спасибо, развеселили) Большинство, как раз таки, как сидели на 8, так и сидят на ней. 8 и даже 7 ещё несколько лет будут в поддержке. Это же java-мир, enterpise-мир больших компаний с большими проектами, тут никто не торопиться переходить на новые версии. Проблему-то какую это решит, если оно и так хорошо работает и деньги приносит? Spring 4, да радуйтесь, что не 3). Мне в прошлом году рассказывали, что одной девушке из соседней конторы достался проект на небольшой допил, а там java 3 или 4 была! И я полно видел вакансий, как раз таки на java 8.

    12 версия - не LTS. Никто толпами на неё переходить не будет. Только отчаянные единицы. У не LTS-релизов срок поддержки теперь полгода. Мрут как мухи. 11 LTS, да.

    Между 8 и 11 не такая уж супер-большая разница, если брать синтаксис. Есть пропасть между 8 и 9 в виде модулей, но не так страшен чёрт, как его малюют. Пару статеек прочитать, один проектик попробовать и вот вы уже разобрались. + добавили несколько методов в стандартную библиотеку, типа listOf, setOf и т.д. для инициализации immutable-коллекций, пару методов в String (например isEmpty) и ещё по мелочи. В основном всякие внутренние улучшения, типо работы строк. Посмотрите списки изменений в интернетах. На каждую версию даже статья на хабре есть.

    А если всё ещё переживаеете, то пройдите сертификацию по java 11. Сейчас там их всего 2. Первая часть на основной синтаксис и проверяет какой вы компилятор java) А вторая уже на всякие интересные штуки вроде многопоточности, стримов, NIO 2 и т.д. Уверенности после них будет хоть отбавляй) Поговорите с работодателем об этом - может даже проспонсирует и премию выпишет за такие инициативы)
    Ответ написан
  • Какой фрэймворк выбрать для фронта в Spring MVC?

    @frozen_coder
    Java-developer
    Если делаете просто для себя, то выбирайте, то что вам хочется. Если вы делаете это по работе или вам кому-то надо обосновать ваш выбор, то задайтесь вопросом - а какую это проблему решает?
    Вы пишите, что у вас многостраничного приложение и в основном всё на сервере. Всякие реакты-ангуляры и проч. предназанчены в первую очередь для создания одностраничного клиентского приложения со сложной логикой - это ваш случай, вам действительно нужно тащить много js на клиент? Если нет, то пишите старое доброе многостраничное приложение с каким нибудь шаблонизатором и js (можете взять ts, можете на vanilla.js писать, можете на jQuery).
    Если же вам таки нужно одностраничное приложение, то ваш сервер надо переписать немного так, чтобы он взаимодействовал с внешним миром через какой-нибудь REST и тогда серверу будет до лампочки, что вы будете делать на фронтенде.
    Ответ написан
  • Где можно найти простые проекты на Spring?

    @frozen_coder
    Java-developer
    https://www.jhipster.tech/ - генератор простых проектов на Spring Boot + фронтенд с разными фреймворками. Можно подсмотреть что-нибудь интересное
    Ответ написан
  • Как понять какие контроллеры нужны для веб приложения на Spring Boot?

    @frozen_coder
    Java-developer
    Что мешает создавать их по мере необходимости? Более того, можно вообще сделать один убер-контроллер, который будет отвечать на всё, но никогда не делайте так :)

    Контроллеры надо разделять по области их деятельности, по той проблеме, которую они решают. Он может отдавать не только же страницы, но и json'ы какие-нибудь - у вас же на странице может быть динамическое содержимое, которое нужно получать без перезагрузки всей страницы. А вдруг оно нужно ещё и на другой странице? Например список пользователей. У нас есть страница для отображения списка пользователей и мы в котроллере пользователей отдаём эту страницу, но где-то на другой странице тоже нужно отобразить список пользователей или вообще отдать просто через REST другой системе, логично метод, возвращающий json-списка пользователей разместить в этом же контроллере.

    Другой путь поделить ваши контроллеры на котроллеры, которые отдают страницы и контроллеры, которые отдают json. Это, можно сказать, вкусовщина.

    Вы делать начните, а там поймёте, как вам удобнее. Не надо бросаться делать сразу все контроллеры, делайте постепенно по областям все слои, потом переходите на другую область. Можно возвращаться же и править что-то. Разбейте задачу на подзадачи (декомпозируйте) по фичам вашего приложения и пилите фичами.

    А если вы работаете в паре с фронтендером, то обязательно обудите с ним, какие ему нужны API и данные на клиенте - это также поможет вам решить ваши вопросы с контроллерами.
    Ответ написан
  • Где брать зависимости для Maven проекта?

    @frozen_coder
    Java-developer
    IDE тут вообще не при чём. Всё можно хоть в блокноте делать.
    Для генерации проекта с кучкой зависимостей, которые вы выбираете мышкой вам сюда - https://start.spring.io/ .
    Разберитесь с maven и pom.xml, как подключить репозиторий. Всё, что вам надо знать - это название либы, дальше идёте в mvnrepository, ищите её и там даже код есть для копи-пасты - https://mvnrepository.com/repos/central. Например - https://mvnrepository.com/artifact/org.apache.comm...
    Можете в jar запихать с embedded tomcat, можете в war пихать. IDE тут не причем. Всё можно делать в комьюнити. Не знаю, какие туториалы вы смотрите, но советую посмотреть на https://spring.io/guides - они простые, там всё описано по шагам, даже содержание pom.xml. Даже есть переводы - spring-projects.ru/projects/spring-framework
    Ответ написан
  • Какой выбрать фреймворк для фронтенда?

    @frozen_coder
    Java-developer
    Не хотите в js-фреймворки? Тогда делайте по старинке - всё на сервере и отдавайте страницы. JSP, thymeleaf или freemarker - выберите один. + jQuery, у которого плагины на все случаи жизни есть. Чтобы было красиво и быстро (фигак-фикак), то берете какой-нибудь css-фреймворк, например bootstrap, у которого и с jQuery есть некоторая связь. Фигачите страницы из компонентов бутстрапа, добавляете динамизма через jQuery, логику формирования страницы на шаблонизаторе (JSP, thymeleaf или freemarker).

    Но кажется, что вы уже выбрали vaadin :)

    З.Ы. Что ни возьми, разбираться придется и это нормально. Не хотите пока что разбираться, тогда может пока не писать фронт, а сконцентрироваться на бекенд-приложухах?
    Ответ написан
  • Совет для web проекта на Java?

    @frozen_coder
    Java-developer
    На java пишут не блоги, и не интернет-магазины. На java пишут enterprise-приложения.

    А это часто подразумевает некую автоматизацию бизнес-процессов, документооборота. Что-нибудь такое. Т.е. перевод работы некого учреждение, компании из бумажек и беготни в физическом мире в электронный документооборот.

    Примеры:
    Работа склада. Товары, складские журналы, поступление, списание и прочие прелести.
    Работа банка. Валюта, вклады и кредиты всякие и т.д. и т.п.
    Работа автомастерской, стоянки, булочной, столовой, полицейского участка, мед. пункта и тд и тп.
    Какой-нибудь справочник-реестр-библиотека-каталог каких-нибудь составных записей из разных других записей, в которых тоже есть какие-нибудь записи с возможностью добавления, удаления, объединения, редактирования при условиях той фазы луны, погоды за окном и вашего расположения духа.
    Еще лучше, если это дело будет интегрироваться с какой-нибудь другой системой или реестром, через REST или SOAP.

    Берите Spring, он, как говорится, в этом enterprise-мире рулит и бибикает. Точнее Spring-Boot, SpringData, SpringSecurity и т.п.
    Вот вам для начала сервис для генерации проекта:
    https://start.spring.io/

    Примеры смотрите в реализации классической PetClinic:
    https://github.com/spring-petclinic

    Также у спринга отличные доки и куча примеров по всей сети.

    Для тестов берите Spock или Junit (Я предпочитаю Junit + Kotlin). Для ui-тестов можно Geb - он очень похож на Spock.
    Ответ написан
  • Как влиться в Spring и что на нем разрабатывать в одиночку?

    @frozen_coder
    Java-developer
    Как уже писали ранее, посмотрите реализации классического примера на Spring - Pet Clinic
    https://github.com/spring-petclinic

    Spring используют для Enterprise - а это значит автоматизация работы различных предприятий, учреждений и т.п. Вот и сделайте что-то подобное.

    Примеры:
    Работа магазина. Там есть всякие товары, продажа-покупка и т.д. и т.п. Можно наворотить.
    Работа склада. Тоже самое, товары, складские журналы, поступление, списание и прочие прелести.
    Работа банка. Валюта, вклады и кредиты всякие и т.д. и т.п.
    Работа автомастерской, стоянки, булочной, столовой, полицейского участка, мед. пункта и тд и тп.
    Какой-нибудь справочник-реестр-библиотека-каталог каких-нибудь составных записей из разных других записей, в которых тоже есть какие-нибудь записи с возможностью добавления, удаления, объединения, редактирования при условиях той фазы луны, погоды за окном и вашего расположения духа.

    Еще Spring - это в основном система для интеграции. Вот и прикручивайте различные штуки к нему. Сделайте SOAP-сервис, что-нибудь для ORM, Security, можно очередь забабахать, можно облака прикрутить, даже вроде graphQL можно или можно будет.

    Посмотреть, что можно накрутить и сгенерить новый проект можно с помощью такого вот сервиса:
    https://start.spring.io/
    Ответ написан
  • Freemarker. Как отправить массив в контроллер?

    @frozen_coder
    Java-developer
    Вариант такой, у freemarker есть #list, через него выводим то, что есть. Новые элементы списка, которые надо вставить на страницу формируем с помощью jQuery и добавляем на страницу куда надо когда надо (по нажатию кнопки или как у Вас).
    Пример как сформировать и вставить новый блок с по....
    Причем в коде формируемых новых элементах не будет никакого фримаркера (как у Вас в примере в атрибуте value). При формировании не забыть вычислять индекс в атрибуте name для новых элементов. Ну и id у вставляемых елементов должны быть уникальные. Как-то так, пробуйте.
    З.Ы. На будущее, код надо вставлять не через скрины - тут можно его вставлять с подсветкой и форматированием через тег code.
    Ответ написан
  • Какие статьи или книги почитать по Транзакциям в Hibernete и по Spring MVC?

    @frozen_coder
    Java-developer
    Документацию читать надо. И гуглом пользоваться. Hibernate books в запросе и ого! Первая же ссылка:
    hibernate.org/orm/books
    Ну и так далее.
    Ответ написан
  • Какую тему для диплома выбрать(Spring)?

    @frozen_coder
    Java-developer
    Java и Spring - это просто инструмент для решения проблемы. Темой они могут быть, если только Вы проблему нашли в их кишочках и как-то её решаете.
    Т.о., как Вы уже поняли, нужна проблема. Поговорите со своим куратором, он может предложить ряд каких-нибудь проблем, а Вы уже их будете решать инструментами.
    Вам также надо обосновать, почему Вы выбрали данные инструменты.
    web и Java = Enterprise. Это приложения масштаба предприятия, т.е. они как-то автоматизируют его бизнес-процессы и документооборот, переносят его работу в web и электронный формат. Они также могут общаться с другими приложениями, системами. Отсюда ищите проблемы. Вам нужно какое-то предприятие, у которого вся работа в оффлайн, всё плохо, бюрократия и ад. Возможно там проблемы класса BigData. А может быть всё распределенное в пространстве нашей великой и могучей родины и ещё где-то офис на Луне. Сложный бизнес-процесс со сложными сущностями. Разный и изменяющийся во времени и пространстве уровень доступа. Интеграция с гос. сервисами. Импортозамещение. Электронный банк, электронные платежи, электронная валюта. Моднявый блокчейн. Наворотить можно много чего.
    Для Java можно ударится в проблемы параллелизма, распределенных вычислений, искусственный интеллект и машинное обучение. А можно написать какую-нибудь библиотеку для разработчиков, еще один язык для работы в jvm. А можно какой-нибудь сервер, который будет лучше аналогов.
    В общем думайте в сторону поиска конкретной проблемы.
    Ответ написан