Building Full-Stack Applications in Java with Vaadin

  Рет қаралды 10,578

Dan Vega

Dan Vega

Күн бұрын

If you want to build a full-stack application in Java you have a few options. In this tutorial I am going to show you how to build frontend apps entirely in Java using Vaadin Flow.
🔗Resources & Links mentioned in this video:
GitHub Repo: github.com/danvega/hello-vaadin
👋🏻Connect with me:
Website: www.danvega.dev
Twitter: / therealdanvega
Github: github.com/danvega
LinkedIn: / danvega
Newsletter: www.danvega.dev/newsletter
SUBSCRIBE TO MY CHANNEL: bit.ly/2re4GH0 ❤️

Пікірлер: 57
@marcushellberg13
@marcushellberg13 6 ай бұрын
Thanks for another great video, Dan! Pro tip for creating the service at 11:44 - if you have the contents of a Java class in your clipboard, you can paste it onto the package in the IntelliJ sidebar and it'll create an appropriately named Java file with that content 🤯
@TheSqdf
@TheSqdf 6 ай бұрын
Been using it for years, love it!
@svalyavasvalyava9867
@svalyavasvalyava9867 6 ай бұрын
What a wonderful tutorial, thank you infinitely ☺️
@nizamibudagov5832
@nizamibudagov5832 6 ай бұрын
Great video, many thanks, I didn't know there is an instrument that allows BE devs to be a little bit more independent of FE
@petmik5022
@petmik5022 6 ай бұрын
I use Vaadin almost 6 years, its pity everybody use js frameworks and Vaadin only 1 percentage of devs, best framweork for me plus Hilla
@_Holy_Lance_
@_Holy_Lance_ 6 ай бұрын
I have a couple of years of experience with wicket 4, vaadin reminds me of it a lot.
6 ай бұрын
Mi too big hommie
@JovanKlajic
@JovanKlajic 6 ай бұрын
Used vaadin since version 6, lately not that much. Special indeed!
@cbmeeks
@cbmeeks 6 ай бұрын
@@joonaslehtinen5175 There is absolutely no misunderstanding. We were told multiple times (in emails and video conferencing) from our rep that it's $93K for 2024 if we stick with Vaadin 8. So we had to upgrade our apps to Vaadin 14 (which is EOL in 2025). I even told them multiple times that we do not even need support. We've never, not one time, ever asked Vaadin for any support. But we were told that the $93K does not even include support! We were told it's the "Extended Maintenance Plan" that only includes security updates, etc. I have all of the email chains going back 6-7 years. I'm telling you, that's what they told me on multiple occasions.
@ficamu2
@ficamu2 6 ай бұрын
It reminded me when I used to program in Swing
@marcushellberg13
@marcushellberg13 6 ай бұрын
The programming model is pretty similar and will definitely feel familiar if you're coming from Swing. But the architecture is completely different with Vaadin Flow creating single-page apps running in a browser.
@calintamas7576
@calintamas7576 6 ай бұрын
Super fain Dane! multumesc! Esti un adevarat prof!:)
@unda25
@unda25 6 ай бұрын
de ce ai scris romaneste este roman?
@calintamas7576
@calintamas7576 6 ай бұрын
dada
@andrews1318
@andrews1318 6 ай бұрын
and now a java champion
@sadiulhakim7814
@sadiulhakim7814 6 ай бұрын
Thank you for this video. I did not know about Vaadin.
@DanVega
@DanVega 6 ай бұрын
Vaadin is great, they also have another framework called Hilla you should checkout!
@sadiulhakim7814
@sadiulhakim7814 6 ай бұрын
@@DanVega Sure. Vaadin is like Java Swing
@Poison0444
@Poison0444 6 ай бұрын
Working with vaadin from 7 years :) So you can do miracles with it, for one specific reason, it`s stores the states on the server
@abedalrawas2656
@abedalrawas2656 6 ай бұрын
I tried Vaadin before it was introduced as a spring starter and it was frustrating. Great to know it can work seamlessly with spring now!
@hba6018
@hba6018 5 ай бұрын
But it's been centuries, many years, since Spring has been integrated into Vaadin 😂
@user-bb4cr9jl6s
@user-bb4cr9jl6s 6 ай бұрын
Very interesting video, I learned interesting technology, thank you.❤
@DanVega
@DanVega 6 ай бұрын
Glad you enjoyed it. Let me know if you have any questions about Vaadin
@skandarsouissi7282
@skandarsouissi7282 4 ай бұрын
Never used it. Now my college projects will be vaadined. Thank you for this video.
@DanVega
@DanVega 4 ай бұрын
Glad I could help introduce you to this amazing project!
@Luisow748
@Luisow748 6 ай бұрын
Have you ever tried spring serving a vue 3 app, calling the vue components directly from the controller without using the vue router? I built it with Inertia integration and Vite and its quite interesting. Btw, thanks for the videos. Helped me a lot.
@user-jj5bj6im8g
@user-jj5bj6im8g 6 ай бұрын
Wow, Is Vaadin still alive? It was rather nich 10 years ago, I thought its gone like jsf
@marcushellberg13
@marcushellberg13 6 ай бұрын
Vaadin has evolved quite a bit in those 10 years. Back then, it used GWT for widgets, now standard HTML web components. It's also more extensible if you want to create or use 3rd party components.
@adambickford8720
@adambickford8720 6 ай бұрын
That was my first thought too! Not sure if I should see what ever happened to moo tools.
@IKGchiller
@IKGchiller 6 ай бұрын
vaadin is (for better or worse) a declaration of war against rest paradigms in web apps
@sardorbekjuraboev4752
@sardorbekjuraboev4752 6 ай бұрын
Great job Very interesting. Can you tell me please what is the advantages and disadvantages compared to GWT toolkit
@DanVega
@DanVega 6 ай бұрын
I would say the rich component library. I haven't used GWT in a long time, is that still be developed and maintained?
@asiphan1
@asiphan1 6 ай бұрын
Thanks for the video! Can you do the same for a full stack application with front end being angular or react and backend with spring boot with authentication
@DanVega
@DanVega 6 ай бұрын
I have done some videos on full stack Spring Boot with Vue in the past. I don't do a lot of Angular or React but I will add it to my list. Thanks for the suggestion.
@souvikroy7420
@souvikroy7420 6 ай бұрын
Thanks Dan. Great video. I would love to know if those UI Components are responsive. Also, how does Vaadin work with Spring Security.
@marcushellberg13
@marcushellberg13 6 ай бұрын
Some components like the DatePicker and ComboBox adapt to smaller viewports on mobile devices for improved UX. The layouts are CSS flexbox-based and you can define wrapping for responsiveness. Vaadin has great Spring Security support, check out the Vaadin docs for an example on how to set it up.
@souvikroy7420
@souvikroy7420 6 ай бұрын
Thanks....I will check it out.@@marcushellberg13
@Vityoube
@Vityoube 6 ай бұрын
Thanks for interesting material. The framework seems promissing (in comparison to JSF it offers pure usage of Java for UI, however I wonder if dynamicity and AJAX on the pages could be achieved on UI). If it could support Java 8, I think, many projects could adopt it
@DanVega
@DanVega 6 ай бұрын
So for example I have the list of blog posts... I could have easily had a button on the page that triggered the action to load those posts. I think we need as a community to move away from Java 8 and I'm happy Vaadin and Spring have a baseline of 17.
@Vityoube
@Vityoube 6 ай бұрын
@@DanVega what about situation when it is needed to dynamically reload the grid when you added the post or imagine that you did the action on the other page that affects posts? For example you made posts using some kind of API (Facebook, Twitter, whatever else) or, for example, this page with List Grid of posts must be dynamic and listen for external changes (the posts, for example, might be added though web service call, might arrive from a message queue, ESBs, whatever else). Can Vaadin fulfill such requirements?
@Vityoube
@Vityoube 6 ай бұрын
Concerning Java 17 ... For new projects (especially dev ones) it is simple to migrate to Java 17. But for existing enterprise projects, that might have years or tens of years of maintenance it is always a complicated decision to move Java 17 and usually comes with many issues and workarounds
@konstantingromov6485
@konstantingromov6485 6 ай бұрын
@@Vityoube there are bunch of listeners - so you can add logic to update UI (e.g. grid data on some events). Regarding update from another page not sure - there is routing concept in Vaadin. But guess you can implement subscription on backend and trigger update on UI (if it's current route). If I understood question correctly.
@marcushellberg13
@marcushellberg13 6 ай бұрын
@@Vityoube - yes, you can do all of that with Vaadin. Most of those can be handled by adding appropriate event listeners and updating components based on that. If you want the UI to automatically update based on data from an external system through a message queue or similar, you can enable a 2-way websocket connection with a @Push annotation (check docs), that allows you to push UI updates to the browser any time.
@kortneykane1268
@kortneykane1268 6 ай бұрын
I used old version of Vaadin a few years back, its quick to develop, but getting slow when the user base increased..
@DanVega
@DanVega 6 ай бұрын
I would give it another look 🤩
@marcushellberg13
@marcushellberg13 6 ай бұрын
As a server-driven framework, it will use a bit more server resources than a fully stateless framework. The main thing to keep in mind is not to save references to any large data sets in your components. In Dan's example, he used `grid.setItems(List)` to set the data. That's great for small data sets like this. But if you had hundreds of thousands of rows of data, you want to avoid loading them all into server memory at once. By changing the call to use `grid.setItems(query -> {})` you can page the data from your database and never keep more than about 10-20 rows of data in memory at once. I have a colleague who's running a popular public-facing energy price tracking site in Finland that's built with Vaadin Flow. It's very data-heavy with charts and price info. It has nearly 100k monthly visitors, often 3k+ concurrent users. It's running without a problem on a $10/month server.
@Muescha
@Muescha 6 ай бұрын
It looks a little bit the same like GWT and GXT/ext-gwt (now Sencha) for me - have done this before....
@Muescha
@Muescha 6 ай бұрын
Is there a old-style extjs theme available for Vaadin?
@marcushellberg13
@marcushellberg13 6 ай бұрын
No. Instead of having many different themes out of the box, we instead have a customizable theme that you can configure with variables to match your needs.
@_Holy_Lance_
@_Holy_Lance_ 6 ай бұрын
Great video, I prefer apache wicket.
@DanVega
@DanVega 6 ай бұрын
What do you like about Wiket?
@_Holy_Lance_
@_Holy_Lance_ 6 ай бұрын
@@DanVega It's more familiar to me than Vaadin, just that.
@essamal-mansouri2689
@essamal-mansouri2689 6 ай бұрын
This seems like such a poorly designed way to enable server-side to control the frontend rendering. It feels like we're pretending to write Java when we really are actually writing HTML divs and tables. I can't see the advantage of writing all these Vaadin-specific function calls which still requires us to know how it will translate to HTML instead of just letting us write HTML directly.
@marcushellberg13
@marcushellberg13 6 ай бұрын
Vaadin Flow's Java API is on a higher level of abstraction than HTML. It's not the way to go if you need full control over the DOM. But if you are ok working on a higher level of abstraction, using components instead of elements, you'll be able to build UIs faster.
Getting Started with Java 21 - JDK 21 First Look
15:03
Dan Vega
Рет қаралды 19 М.
Java is slow and verbose (or so they say)
20:39
Dan Vega
Рет қаралды 10 М.
WORLD'S SHORTEST WOMAN
00:58
Stokes Twins
Рет қаралды 128 МЛН
Задержи дыхание дольше всех!
00:42
Аришнев
Рет қаралды 3,8 МЛН
Smart Sigma Kid #funny #sigma #memes
00:26
CRAZY GREAPA
Рет қаралды 6 МЛН
小宇宙竟然尿裤子!#小丑#家庭#搞笑
00:26
家庭搞笑日记
Рет қаралды 16 МЛН
Vaadin vs Hilla
10:43
Simon Martinelli
Рет қаралды 5 М.
UI Libraries Are Dying, Here's Why
13:28
Theo - t3․gg
Рет қаралды 290 М.
Spring boot + PostgreSQL + Liquibase + Testcontainers
22:01
Sergey Labuzov
Рет қаралды 9 М.
You don't need a frontend framework
15:45
Andrew Schmelyun
Рет қаралды 118 М.
Building Web Applications With Vaadin and the Kotlin DSL
1:04:29
Kotlin by JetBrains
Рет қаралды 4 М.
Web чат на чистой Java (Vaadin)
24:22
letsCode
Рет қаралды 23 М.
JPEG is Dying - And that's a bad thing
8:09
2kliksphilip
Рет қаралды 13 М.
КРУТОЙ ТЕЛЕФОН
0:16
KINO KAIF
Рет қаралды 7 МЛН
Как противодействовать FPV дронам
44:34
Стратег Диванного Легиона
Рет қаралды 106 М.
Сколько реально стоит ПК Величайшего?
0:37
Запрещенный Гаджет для Авто с aliexpress 2
0:50
Тимур Сидельников
Рет қаралды 1,1 МЛН