Docker toolkit: ctop vs lazydocker
8:55
Простой HTTP сервер. #1
24:22
WebFlux: JWT
28:06
4 жыл бұрын
🔒WebFlux. Spring Security
19:06
4 жыл бұрын
Пікірлер
@Top-BestOf
@Top-BestOf 7 күн бұрын
Здравствуйте. Как можно с вами связаться ? В лс если можно было бы.
@Alex-ke9nu
@Alex-ke9nu 3 күн бұрын
да уже видимо никак)
@letsCodeDru
@letsCodeDru Күн бұрын
зойчем?
@letsCodeDru
@letsCodeDru Күн бұрын
ойфсё
@user-wp6dl4ts4g
@user-wp6dl4ts4g 8 күн бұрын
спасибо
@vesh95
@vesh95 8 күн бұрын
Нашел ответ
@vesh95
@vesh95 8 күн бұрын
Я всю жизнь жил на laravel и для меня было очень диким то, что база данных перенинициализируется при перезапуске, теряются данные. Это как продуктовых средах вообще работает когда мы выкатываем новую версию приложения? Или там просто проперти другие вгружаются?
@Niko-eh2rk
@Niko-eh2rk 10 күн бұрын
Там нужно ведь отдельно ставить виртуальный веб сервер как на php
@ИванШаповалов-о2у
@ИванШаповалов-о2у 17 күн бұрын
Добрый день! Я новичок, в файлах всё как на видео, но при запуске приложения ошибки (Редактор VS Code) WARN 1688 --- [ restartedMain] unknown.jul.logger : ConnectException occurred while connecting to localhost:5432 2024-07-11 17:32:44.004 ERROR 1688 --- [ restartedMain] org.postgresql.Driver : Connection error: org.postgresql.util.PSQLException: ╧юфёюхфшэхэшх яю рфЁхёє localhost:5432 юЄъыюэхэю. ╧ЁютхЁ№Єх ўЄю їюёЄ ш яюЁЄ єърчрэ√ яЁртшы№эю ш ўЄю postmaster яЁшэшьрхЄ TCP/IP-яюфёюхфшэхэш . 2024-07-11 17:32:45.018 ERROR 1688 --- [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. org.postgresql.util.PSQLException: ╧юфёюхфшэхэшх яю рфЁхёє localhost:5432 юЄъыюэхэю. ╧ЁютхЁ№Єх ўЄю їюёЄ ш яюЁЄ єърчрэ√ яЁртшы№эю ш ўЄю postmaster яЁшэшьрхЄ TCP/IP-яюфёюхфшэхэш . Caused by: java.net.ConnectException: Connection refused: connect Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is org.postgresql.util.PSQLException: ╧юфёюхфшэхэшх яю рфЁхёє localhost:5432 юЄъыюэхэю. ╧ЁютхЁ№Єх ўЄю їюёЄ ш яюЁЄ єърчрэ√ яЁртшы№эю ш ўЄю postmaster яЁшэшьрхЄ TCP/IP-яюфёюхфшэхэш . Caused by: org.postgresql.util.PSQLException: ╧юфёюхфшэхэшх яю рфЁхёє localhost:5432 юЄъыюэхэю. ╧ЁютхЁ№Єх ўЄю їюёЄ ш яюЁЄ єърчрэ√ яЁртшы№эю ш ўЄю postmaster яЁшэшьрхЄ TCP/IP-яюфёюхфшэхэш . Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set Подскажите, пожалуйста, как это решить? Перелопатил весь гугл, в комментах нет, в других видосах не нашел. В других проектах находил, что у людей проблемы с postrgesql, но там решение в таких файлах, которых тут нет. Установил WSL Ubuntu. Создал БД. Запустил. Ввел команду проверки базы sweater. Попросил терминал пароль. Ввел 123. И в ответе: неверно. Как так?
@shaxzodamansurova1814
@shaxzodamansurova1814 17 күн бұрын
Добрый вечер, 3:55 минут стало не понятно на что нажали?
@user-lq7jv1do8s
@user-lq7jv1do8s 20 күн бұрын
Ляяя... Скажите им там, что у олених нет рогов таких. Они только у оленей
@letsCodeDru
@letsCodeDru Күн бұрын
зависит от вида, на самом деле
@numberzero6833
@numberzero6833 27 күн бұрын
У кого ошибка "Error creating bean with name..." рекомендую поменять javax.persistence-api на jakarta.persistence-api
@user-hh5rf5jf7m
@user-hh5rf5jf7m Ай бұрын
не работает
@smallworldoflynx3772
@smallworldoflynx3772 Ай бұрын
Огромное спасибо
@user-mr5pq1dc1t
@user-mr5pq1dc1t Ай бұрын
После слов "срать в порты" я понял что подписываюсь😅
@DrW1ne
@DrW1ne Ай бұрын
очень старое видео, но было интересно гдето день пытатся выявить что проблема в том что тут старый спригбут.
@Sulf8
@Sulf8 Ай бұрын
за grep console спасибо)
@b213videoz
@b213videoz Ай бұрын
Hipster stuff
@crazym8nd
@crazym8nd Ай бұрын
ожидал plain java а не всякие спрингбуты и ваадины)
@letsCodeDru
@letsCodeDru Ай бұрын
се ля ви)
@mizantropoff
@mizantropoff Ай бұрын
"Вам несложно, а мне приятно" - мне очень сложно) Андрей, я где то видел Ваши замечания о jQuery, о том, что он влечет за собой плохую архитектуру кода. то есть Вы понимаете, что такое - ПЛОХАЯ АРХИТЕКТУРА кода. Вопрос - а что такое плохая архитектура обучающего курса ? Зачем нам был нужен маппинг "/changeMessage"? зачем мы расширяем @SendTo "/activity"? Это какие то "встроенные" дефолты? Я не понял - где мы настроили маппинг, чтобы использовать абсолютные пути при импорте? Ну хотя бы пару вступительных слов про сокеты, стомпы и пр. Как это все работает - у меня понимание процентов на 30-40, не более. Лайкну конечно, и пойду топтать гугл и ютюб. чтобы понять хотя бы процентов 70-80 урока.
@mizantropoff
@mizantropoff Ай бұрын
3 недели спустя вернулся проверить свои нервы снова. Но сначала расскажу, что мне пришлось сделать, чтобы с учетом Vue3 приложение работало после шага, описанного в этом уроке. Во первых, чтобы резюмировать и самому лучше понять - что и зачем я делаю, ну а во-вторых, может кому пригодится. 1) Начнем с того, что установка версий npm, node, webpack и vue, описанных в этом видео, мне ничего не дала, и я установил все ПОСЛЕДНИЕ версии , актуальные на май 2024 года. Кроме vue-resource, которого уже нет в живых. Vue 3 напрочь отказался работать с vue-resource последней известной версии, нагугленный и установленный axios нельзя было применить , не будучи знатоком js (промисы, коллбэки и пр.) 2) После долгих мучений я ушел отсюда, чтобы разобраться с js. Хорошо , что у меня уже был в подписке отличный материал - 20 часов JS спокойным, медленным темпом, правда, на английском, (нс неплохим произношением, и для меня это не было проблемой). Автор этого курса , если захочет, уберет мою ссылку, но я не думаю, что это правильно, Андрей шикарный программист, но чтобы обучать других, ему было бы полезно посмотреть на образец того - как нужно снимать обучающие ролики, таких материалов очень немного в свободном доступе. Обратите внимание , там отличная МЕТОДИКА, постепенно, от простого сложного и с массой задач). Итак, у кого пробелы в JS - прошу сюда kzfaq.info/get/bejne/e8uil6qeksvMeoU.htmlsi=DRmq680D_0e1SEmH . Кстати, у этого китайца скоро выйдет курс по Node.js 3) После долгих поисков я нашел отличный пример Spring Rest + Vue.js приложения на Vue3. На ютюбе такого очень мало, максимум - GET запрос и ВСЕ! Вот ссылка howtodoinjava.com/spring-boot/vuejs-app-with-spring-boot/ . Ну и наконец, после всего этого я за пару часов скоректировал код Андрея под Vue3 , не меняя структуру и логику, всего лишь добавив Axios. Бэк я не менял. Итак, мой main.js: < import {createApp, h } from 'vue' import App from 'pages/App.vue' import Axios from 'axios' //import Resources from "vue-resource"; const app = createApp({ render: () => h(App), }) app.mount('#app') > В созданной директории resources/static/utils я создал apiClient.js: < import axios, { AxiosInstance } from "axios"; const API_URL = "localhost:9000"; const axiosInstance = axios.create({ baseURL: API_URL, headers: { "Content-Type": "application/json", }, }); export default axiosInstance; > В созданной директории resources/static/service я создал messageService.js: < import apiClient from "../utils/apiClient"; import Message from "../types/Message.js"; class MessageService { // get All Messages getAllMessages() { return apiClient.get("/message").then((response) => response.data); } getMessageById(id) { return apiClient.get(`/message/${id}`).then((response) => response.data); }; edit(id, msg){ return apiClient .put(`/message/${id}`, msg) .then((response) => response.data); } async delete(id) { return await apiClient .delete(`/message/${id}`) .then((response) => response.data); }; save(msg){ return apiClient.post("/message", msg).then((response) => response.data); }; } export default new MessageService(); > В MessagesList.vue я импортирую messagesService: < import messageService from "../../service/messageService"; > ... и меняю method : < deleteMessage(message) { try { messageService.delete(message.id).then(() => { this.messages.splice(this.messages.indexOf(this.message), 1) }) } catch (error) { console.error(error.toString()) } } > В MessageForm.vue я также импоритрую сервис и меняю method save(): save() { const message = {text: this.text} if(this.id) { messageService.edit(this.id, message) .then(data => { const index = getIndex(this.messages, data.id) this.messages.splice(index, 1, data) this.id= "" }) } else { messageService.save(message).then((data) => { this.messages.push(data) } ) } this.text = "" } Я пока не стал менять все кардинально, хотя там масса возможностей для оптимизации. Буду смотреть дальше. Помолясь.))) Андрей, не обижайся, ты крут, но для такого чайника, как я - слишком) PS. В методе save при сохранении НОВОГО сообщения как то странно работает data - вернее то работает, то нет. Как вариант, можно пушить message, предварительно присвоив id из полученной с бэка data ( message.id = data.id this.messages.push(message) По идее то же самое, но почему то у меня пару раз message грузился на страницу с пустым id, и только после обновления страницы id (загружались из базы).
@videoshlyapa
@videoshlyapa Ай бұрын
Если честно то для новичка только будет понятно как выйти а все остальное проходит быстро и хер понятно че к чему.
@MrJet84
@MrJet84 2 ай бұрын
Не пользовался никогда. Спасибо
@ukrainesov21
@ukrainesov21 2 ай бұрын
4:54 - не понимаю, как у тебя получилось использовать переменную типа BaseRequest в строчке 29, у меня пишет 'BaseRequest' is abstract; cannot be instantiated. Кроме того, даже если оставить как было SendMessage request, то в параметры никак не лезет переменная chatId типа long, т.к. там требуется тип String. Может что-то изменилось за пару лет в черном ящике и методы стали другими?
@user-lx9ws9er9d
@user-lx9ws9er9d 2 ай бұрын
Самая имбовая часть мне кажется
@andreyromanov680
@andreyromanov680 2 ай бұрын
Спасибо большое, все бы как ты объясняли. Лайк
@restartedpanda5995
@restartedpanda5995 2 ай бұрын
Спасибо!!!
@lionelmessi6652
@lionelmessi6652 2 ай бұрын
что делать,если выходит ошибка FluentToken.-, FluentToken.., FluentToken.COMMENT_LINE or FluentToken.Symbol expected, got '<' после перехода на ftl,вместо mustache
@evgenyhyvarinen8367
@evgenyhyvarinen8367 2 ай бұрын
Очень крутая подача, за долгое время не видел столь крутых обзоров/туториалов на тек, респект от души а юмор залетает как дети в школу :)
@mizantropoff
@mizantropoff 2 ай бұрын
Из 2024 привет. Мучился с запуском, пока снова взял и не загрузил все новые версии фрейморков, в том числе node, и все поехало. Но радовался рано. Какое то время все работало, потом какая то странная ошибка стала вылетать : Cannot read properties of undefined (reading 'Vue') TypeError: Cannot read properties of undefined (reading 'Vue') at initBackend (chrome-extension://nhdogjmejiglipccpnnnanhbledajbpd/build/backend.js:2088:28) Понял, что причина в строке App.use(VueResource) (deprecated), убираю ее и все вроде нормально, но стоило раскоментировать messageApi с корректировкой как на видео - ни одна функия не работает, ну и когда опять подключаю Resourse - все равно не работает MessagesList.vue:20 Uncaught TypeError: this.$resource is not a function at Proxy.deleteMessage (MessagesList.vue:20:12) at Proxy.del (MessageRow.vue:9:14) at onClick._cache.<computed>._cache.<computed> (MessageRow.vue:21:46) at callWithErrorHandling (runtime-core.esm-bundler.js:195:1) at callWithAsyncErrorHandling (runtime-core.esm-bundler.js:202:1) at HTMLInputElement.invoker (runtime-dom.esm-bundler.js:696:31) deleteMessage @ MessagesList.vue:20 del @ MessageRow.vue:9 onClick._cache.<computed>._cache.<computed> @ MessageRow.vue:21 callWithErrorHandling @ runtime-core.esm-bundler.js:195 callWithAsyncErrorHandling @ runtime-core.esm-bundler.js:202 invoker @ runtime-dom.esm-bundler.js:696
@broalan
@broalan 2 ай бұрын
Охренеть ) Учу джаву 4 месяца уже, только только добрался до спринга. Думаю писал бы такое приложение неделю, а то и больше ) Скажи, Андрей, через сколько лет я так же смогу? 😌
@letsCodeDru
@letsCodeDru Ай бұрын
Писал приложение пару-тройку дней в свободное от работы время) можешь поднять свой уровень до такого за пару лет в нормальном стартапе
@user-jk3cn7ck2f
@user-jk3cn7ck2f 2 ай бұрын
Хороший понятный видос. качественный.
@mizantropoff
@mizantropoff 2 ай бұрын
Нууууууууу, ребята, это твердый дизлайк. На лету мимоходом говорится про целый пласт сложнейших вещей, которые совершенно не относятся к Java и Spring Boot. Вы меня простите, но если уже делать курс на такой базе, нужно как то включать подачу тех знаний и логики, которые относятся ко всем упомянутым технологиям. Это не просто html, css, js, эти техники по значительности требуют не менее пристального изучения, чем Spring, а по объему - даже БОЛЬШЕГО. Смысла не понимаю так давать материал. С другой стороны, если кто уже владеет этими технологиями в совершенстве - неужели его устроит подача Спринга на таком уровне?! А кто не владеет - пойдет их изучать и вернется сюда через год, забыв уже все на свете. Конечно, можно откатиться на ранние версии и тупо повторить все за автором, но это не обучение, а ..... И все для того чтобы красоту навести? Зачем? Лучше закончить со спрингом, путь итог будет деревянным, но понятным и разобранным до основания. Путь мы бы видели на странице json ы сплошные. И отдельно разбирать уже украшения. Или отдельно пилить подробные видео про все упомянутые технологии и рекомендовать изучать их ДО данного курса сразу же, в описании. А тут все по верхам, я считаю. Никакого глубокого понимания. Все обо всем и ни о чем. Жаль. Придется уходить наверное, не нравится мне, как попугаю просто тупо копировать и вставлять.
@user-xb2dv2ew6j
@user-xb2dv2ew6j 2 ай бұрын
Насколько WebFlux актуален сегодня при том что завезли виртуальные потоки?
@mizantropoff
@mizantropoff 2 ай бұрын
Простите, я не понимаю, как это работает. А именно - мы просто указываем маппинг обработанный в контроллерею , как ресурс, и Vue компоненты подхватывают и нашу базу, и методы, которые даже называются по разному во Vue и в контроллере. Ну ладно , messages подхватываются, но методы? Мы ведь даже не указываем get, post, put, delete. И конечно, я не смог на лету все это адаптировать к Vue3, использую пока Vue 2. Потом буду думать как мигрировать. Пока не нашел нормального описания именно варианта с CDN во Vue3, большая часть материала касается приложений, у которых и серверная и клиентская часть на Vue. Если кто полезные ссылки даст - буду рад. Мне нравится этот вариант, так как для демонстрации два сервера городить не вижу смысла, а тут , как я понимаю, все работает на одном сервере - и фронт и бэк.
@anjelomanoranjan
@anjelomanoranjan 2 ай бұрын
Спасибо) бомбезное видео. А у тебя есть видео где ты при написании сервиса, программы, приложения... работаешь с HashMap?
@moovestone
@moovestone 3 ай бұрын
спасибо. только это походу для тех, кто уже работает разработчиком, а не изучает)
@odnorob
@odnorob 3 ай бұрын
Спасибо отличная инструкция. Только "dd" и "x" это не совсем удаление, это вырезание. Потом вставить вырезанное можно клавишей "p".
@PlesneviyGRIB
@PlesneviyGRIB 3 ай бұрын
А если был неправильно выполнен merge? 1) "revert -m 1" (ревертим merge) 2) "merge robotics..." (Пытаемся снова смерджить ветку, и получает already up to date, так как все коммиты достижимы) Как поступать в случае, если зафакапили merge (без переписывания истории)?
@vladislavosipenkov1412
@vladislavosipenkov1412 3 ай бұрын
А нет видео где stomp но вместо фронта - postman?
@romanivanov3302
@romanivanov3302 3 ай бұрын
Хороший урок, спасибо! Теперь лицензия стоит 800 баксов уже ахахаха
@mustaev1982
@mustaev1982 3 ай бұрын
это просто жопа какая то. весь вечер исправлял ошибки..во первых надо было прописывать емейл и юзера... потом гит инит создал ветку мастер... а на сайте создалась ветка мейн... и начались танцы с бубнами... видео 6 мин..цуко весь вечер убил на исправления.
@LiRa-py8ki
@LiRa-py8ki 3 ай бұрын
Хкрня
@ShuxriddinSolixov
@ShuxriddinSolixov 3 ай бұрын
Спасибо за полезный контент
@desantovih
@desantovih 3 ай бұрын
автор спасибо тебе большое!!!!!!!!!!!!!!ВИ это адская хня !!!я не смог выйти сукаааааааа
@Ximelay
@Ximelay 3 ай бұрын
Прочитал как НЕГР
@LKeyman_
@LKeyman_ 3 ай бұрын
3 месяца учил основы Java. Сейчас вообще не понимаю зачем это делал, потому что из основ тут ничего нет! Вообще не понятно че происходит... Это фиаско, чувствую боль...
@universeunity9970
@universeunity9970 3 ай бұрын
Так само собой. Он здесь фреймворк использует. Что ты собирался здесь понять? Ещё очень рано. Нужно много всего изучить, а потом изучить сам этот фреймворк, что бы на нём работать, если тебе именно это будет нужно, конечно.
@TarasYanchuk
@TarasYanchuk 3 ай бұрын
Это называется "паравиртуализация"
@nelsonnetru
@nelsonnetru 4 ай бұрын
Друзья! Я одного не понял - когда отредактировали MainController и в аргументы для "/add" вместо text и tag вставили @Valid Message message, как SPRING все равно понимает, что в post-запросе данные формы - это Message? По какому принципу парсит поля <input> из формы?
@artemkarpov1078
@artemkarpov1078 4 ай бұрын
Продолжения не будет (
@letsCodeDru
@letsCodeDru Ай бұрын
не факт)
@oopseasy
@oopseasy 4 ай бұрын
Много воды!
@gregjorliony9719
@gregjorliony9719 4 ай бұрын
Невероятный. 🙏
@ZeBatua
@ZeBatua 4 ай бұрын
Видео для тех, кто уже что-то знает про стримы. Я вообще ничего не понял. Куда то летит, миллион всего объясняет. 0 шансов запомнить и тем более понять