Bootiful Spring Tooling for the Masses

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
well hello everybody welcome back i you know i love all the stuff that we're learning but i'm also excited about all the tools we get to play with this is so great our next presentation beautiful spring tooling for the masses is what i've been waiting for it's going to be presented to you by hadi hariri sandra algrim and martin lippert martin would you take it away yeah it's my pleasure to kick off this awesome talk so welcome to our beautiful spring tooling for the masses um we know you love your tools and our goal is to make you more productive using these tools of your choice basically when you hack springy spring applications using spring boots spring framework all the spring projects and all that good stuff so since we we don't really want to convince you to use a specific tool we really want you to be most productive or the most productive as possible as productive as possible using the tool that you're already using and therefore we have a choice of basically three tools and that's why we have three three presenters on this talk um so we will take a look and give you an intro about how to do springy app development using eclipse and the swing tool suite vs code and intellij idea so whatever you prefer of those three tools this is the talk for you and you will get deep insights into how to do spring app development using these tools so we will walk through all of them switch between us and show you some goodness we will not show everything in every tool because otherwise we would repeat ourselves all the time but you will i think get a great overview about what is included in all those tools how to get started how to code how to learn how to deploy things in all these different environments and with that i would like to hand it over to sandra to kick it off and get started using spring boot development in vs code sandra thanks martin welcome everyone so i'm here working as a developer advocate for microsoft so for all java developers basically and i'm very happy that i'm the one who's presenting vs code so for our entry and scenario scenario we would want to present we will always start with a new project so i'm here in a totally empty repository and i will just open up my visual studio code from here okay there we go you should see my screen and here is my empty repository and what i'm using is this spring spring boot extension package so make sure you have that installed and if you have installed this one you are able to see a welcome screen where you can actually create a new vs code a new spring boot project so i will go here and create a new spring boot project i will choose the specific spring boot version and why don't we stick with the latest and greatest stable version and we will go with java i will just go with the com example call it hello and use the packaging as jar java 11 is fine and i'm going with the with my extensions and as you can see i can also use the last use tab or i search for each of them by hand and i'm i'm using here the spring web and also the spring actuator for better monitoring and also for yeah to simply let it go with my app and see what's happening here so i can just generate this into this folder and then i quickly add that to my workspace and so i'm able to see here my hello application i've just created my source folder even with some tests and here is my hello application i can run this from here or i go and create maybe a simple controller as well right so let's go with the hello world controller yes i got a class and i'm using the rest controller i feel that some things are still loading in the background let's see so rest controller yep and it's importing automatically automatically for me what i want to use and i'm also using the class no the get mapping and here i'm getting the whole yeah so everything is filled out for me and i can now just quickly add some data here so just give it the return type spring call it get hello world or head of spring yeah maddie what do you think should we call it hello world or better hello spring one of course hello spring one but make it a string another spring yeah totally thanks okay let's remove all the unnecessary imports and let's just run the application so now spring is starting and i can actually go on localhost 8080 so yep the post 8080 and you can see i'm there with my as expected yeah i don't know but you can see i opened that up here so that's fine that's working so we're going to showcase even more outline metadata and other things like the springboot dashboard in a bit but i think we should go with a bit more complicated project what about the all famous pet clinic application martin do you want to give it a try and and load the pet clinic for us of course i love pet clinic so this is jumping over to the eclipse version of the spring tooling the spring tools for eclipse distribution having pet clinic imported already so uh of course i don't don't know anything about pet clinic um so hardy will show us more details about pet planning in a second but something that sandra showed us is the the integration with the start.spring.io starter to get projects created but usually when you do that you select a few dependencies but they will change over time so most likely you will like to add additional dependencies over time and what people usually then do is finally they they go back to startup spring they oh they create a project with this additional dependency they browse the code and then they kind of copy paste the necessary bits and pieces over into the existing project and to make that easier and there's a nice little wizard that i would like to show where you can add additional dependencies to an existing more complicated project so it gives you kind of the same choice as this code would do as start.o would do in this case let me select azure support could search for other stuff here and see all the all the goodness from story.spring.oh but let's stay with the azure one in this case for example and as a result i basically get support for what i would do manually like oh take a look at the code what would be generated and copy paste things over into my project but more automated and in a better in a nicer way because here i see on the left side what startup spray spring.o would generate for this project like a pom file with these ingredients and on the right side i see what is in my in my project in my workspace so i can just say okay please use all these changes and put them into the right place like a new property in the property section a new dependency in the dependency section and so on which is quite nice so let's just check it off um another thing is that if you create a new project on startup spring.o there might be other files being created for you as well like for example a help file properties and an application properties file things like that so this wizard will tell you that as well and in this case i don't have a help file in my project so i can easily take a look at what would be generated and say yeah give me that as well because there are interesting links i can just finish that and get all these things automatically included in my project so it is a lot easier and provides more feedback and more details than to just do that manually yourself to add additional properties so that's kind of just a quick walkthrough about how you can add dependencies to existing projects and benefiting from the startup spring that i o experience and to learn more about what is this project all about and what is all included and what are all my spring elements in this project i would like to hand it over to hattie to show us how he would learn about this project and kind of navigate and think about what's all included in intellij idea howdy take it from here thank you martin yeah so uh we're going to start we're going to open up the projects but pet clinic and i have no idea how it works i don't know anything about it so obviously if you're using intellij you're familiar with all of the different navigation features that we have right so i can for instance go to uh my class owner controller here and then navigates to anything that uses the owner controller and so on and so forth and but there's also spring specific stuff that we have in intellij idea and namely when i open up an application that is a spring application what i want to do is first of all go to my entry point which is my pic clinic application in this case so it'll be my spring boot application from here you can see the gutter icons and these are the important things that you always have to notice in intellij idea are the gutter icons which show you features of spring support and i'm going to use the mouse a lot here so that you can see what i'm actually doing but most of these functionalities you can actually use by the keyboard so i can say show me the spring diagrams and this would give me kind of an overview of a little bit like what is this application how is it all tied in together but there's other ways to actually explore the application if you open up the spring tool window you can see that we have three tabs here beans mvc and data now the beans are essentially giving us information about all the classes that we have inside our application those that come from spring the framework you are in yellow and then those that are part of our class are our application are actually the ones that are highlighted in white does that even make sense that it's highlighted in white probably not but anyway so we have our own controller and then inside the owner controller we can also see everything that is related and how things are kind of like go together so pet type formatter etc but there's more to this if i click on the data what if you're doing any kind of spring application obviously you are well aware of the repository pattern and you are using interface repository to basically get that crowd functionality when you want with your database so here you it's very common that in your application you have a bunch of these and here you can see that i have the vet repository the pet repository the owner repository clicking on each of this it gives me the different functions that are available the different methods that are available for each of these controllers now from there on we can also go over to mvc and mvc shows us all of the controllers that we have inside our application so here for instance i have the crash controller owner controller and if i click on the owner controller i can see all of the different entry points that i have in that owner controller so for instance let's click on the post double clicking on it will take us to the actual code where that is defined but in this code we can also see that we have again a gutter icon and we have a world icon so if we click on navigate to related views it's going to show me the views that are related to this actual uh url resource if we click on open an http client that is actually quite useful because it uses the http client tool inside intellij that allows you to it offers you completion the ability to run things etc but we'll see that in a moment and last but not least if i click on the world here and i say show all endpoints of module this will give me an overview of all of the different endpoints that my spring application has and of course i can get this with double shift and uh you know using the url here as well but this gives me a nice tool window of everything and then if i click on each of these ones i can see the documentation i can see the http client request that it would generate as well as the openh open api so this gives me a good overview of my controllers the endpoints but we're talking a lot about uh databases as well and in any application again you're going to probably have your databases and if you're using intellij idea you're going to have integration with database tools right so here you can see that i have my uh database tool and i have my actual sql database i can double click on any of these and i can see all of the data that is being displayed and then of course i can also show the persistence view so if i open up my window with shift command a remember that that is the one that you want to go to if you don't know the keyboard combination shift command a persistence that will give me information about the persistence that i have in my application so here i can see for instance owner click on first name and it will take me to that code to that bean that is representing that persistence and if you are using intellij idea and you are using the plugin which is called uh jb jpa buddy over here jpa body that gives you another interesting and nice tool window by bringing it up by saying jps structure and what this gives me is a little bit more information it actually provides me with information about the basic entity that is being used what is it it's referenced by etc so all of this allows me to get a good idea of how things all come together in my spring application and in a little bit we'll actually start to see how we can extend this application intelligent idea with some coding and with that i'm going to hand it off to sarah who's going to show us the next steps sarah yes i'm sandra so i'm back to vs code let me share my screen first [Music] there we go so here is the pet clinic i cloned the repository and opened that up in my visual studio code um yeah and if i want to see where i am right now i can also find the main app here or i press on the outline that also gives me a nice overview of the new springbook tools as well as the language and the main application or the main method where i can start and here i also have my spring dashboard where i can easily run and debug my springboard application from i can also dive a little more into the java project here but it's actually and and see here the model with the base entities and and owner and system but as you can see it's either small and probably not the best overview and i can also use the shortcut command t on my mac and then search for for our request mappings and like going for owners or go for add and then yeah have you for instance the owners with the owner id and the edits or i go and search for the configs with c or i can also go in and search for my beans what was it was it just this one the edge plus at plus plus what is it yep thank you it's always good to have the expert for spring tooling with you and such a car isn't it so yeah and here i can see all the beans um my spring boot application is using and that's actually very cool and if i know kind of the name i can also search for it like the pet type format trend it also works with shortcuts so that's pretty cool and then and that helps me a lot to get used to my application and obviously i can also start running the app from here and then have a look at the logs and everything so now it's starting the up i still need to get used when i'm in bs code and when i'm in code spaces because it looks so alike but yeah the shortcut command he obviously only works in bs code because otherwise you would open up a new tab yep so my app is up and running so i can also go i think it was 8080 as well let's see probably unlock host 8080 and get the pet clinic application find the owners or all owners and vegetarians and see the errors and also see the arrows inside my locks here nice and easy not too much not too less i think it's a very good to start off with applications and obviously if you have bigger applications and you're more familiar with other tools you're open to use other tools other than that that it's super easy to implement new extensions or to write your own extensions and then embed the tooling that you need all right so what if i want to dive even more into loggings and what's actually happening at runtime martin do you have a way how to explore that in eclipse yeah we do so um what we saw from hadi and zandra is basically static information right the information inferred from the source code so giving you a great overview about what is in your source code we can do the same similar stuff in eclipse for example using this it's basically the same that i'm going to show it as in envious code but in eclipse but um as you know spring boot is doing stuff at runtime so when you started your app it kind of wires beats together it creates spins and adds additional stuff um so sometimes there's kind of a a mismatch between what you have in mind from your source code versus what is actually happening at runtime so in order to to help you with that the spring tools for eclipse and ds code and i think intellij has something something similar to that um is shown when you started an app showing you additional information from the running real application and what is happening inside of this running real application so i started our pet client and what you see here in this case it there are additional highlights appearing in the source code that tells you what what goes on with this class or this beam at runtime so when you hover over this for example you will see that oh there's a controller this control is highlighted so this beam actually exists at runtime in the path clinic app that is running and there are two other beans being injected into this one so the owner repository and the visit repository in this case so you can understand what's going on at runtime versus what is in your source code and you can use that to debug stuff for example as well or to get better understanding about what's going on in this case for example i have my owner controller and i inject three things in the constructor kind of a non-repository visit repository and and something called foo and what i see here is the two of them are highlighted so they actually exist so there is something being injected and i can see what is being ejected at runtime i can even jump to where this has been defined and the code same for a visit repository but nothing for foo so it's not highlighted so it looks like and i configured it this way that this is possible actually otherwise the app would not start so let me go to foo and see that's a service so i annotated that with service it should be just there and should be just fine why is that not being wired so service is not being highlighted green that means this beam does not exist at runtime so it gives you this even if it's not highlighted it tells you this beam does not exist so there's additional information in that case as well and in my example i added a conditional on property here say okay this bean should only be active if a certain property is configured in my environment so when i hover over this and the green highlight tells me there is additional information about that it tells me that this conditional on property did not match the condition because it did not find the property food or property so now i get an idea but okay food.property is not defined in runtime i could dive deeper and try to find out why is that not defined at runtime maybe look at my properties file and see what's there and with this additional information kind of bridge the gap between what is in my source code and what is really happening at runtime in my running application as soon as i find something like this i of course want to fix it and want to work on my application and want to add additional stuff to it and to do some more coding and show you how to use intellij and i hand this over to hardy in a second and to show us more about how you can actually do some coding get some additional coding assistance and help confidences stuff like that an intellij idea in this case how you can be really efficient doing coding on spring boot applications so let me stop share my screen and hand it back to you hardy take it from here so i can see your screen but i cannot hear you yet you hear me now yeah now i can hear you yeah i was saying that every time i want to share my screen instead of hitting share screen i'm so close to hitting leave and i'm like i'm like stop hitting that red button like why do they make it red anyway so what we're going to do is to add some code right and a big confession i am not a java developer i do write some kotlin but not java but the great thing about spring which is absolutely awesome is that you can actually mix and match mix and match java and kotlin in the same application and that's exactly what i'm going to do so i have my kotlin folder here and i'm not a big fan of having our languages separated by folders and namespaces but let's just not go there uh so what i'm going to do is i'm going to add a new kotlin class which is a kotlin bean and we're going to call it adoption right because we want to talk about uh adopting new pets right we're talking about pets so let's uh talk about adoptions and we're going to add it as an entity but it's going to inherit from base entity and we're going to put the entity attribute and then we're going to put the table and this table is going to be named adoptions and you can see that that goes red why does it go red well because it's saying this table doesn't exist so let's go ahead and fix that if i just open up my database tools i have an actual script here somewhere in resources which i think is called adoption sql there you go and i can just hit run on this and say i want to run all of it and then essentially there you go it's just created the adoption table for me and if i switch back over to adoption you can see that that red has gone and it now allows me to navigate directly to the actual uh table so let's go back to our adoption here and let's add something so we're going to add a column and we're going to call that column not m so we're going to say that it's not empty and it will have a name and then let's go ahead and duplicate this there you go oops not like that honey not like that duplicate and then we'll say here this is going to be year of birth and then my last one is going to be location right so now i have my entity the next thing i want to do is add a repository so we're going to go and create an adoption repository class but this is actually an interface so it would be adoption repository interface and this is going to be based on adoption of type int our repository and let's navigate back to that and hit alt enter to import it and there we go now we'll add our functions which will be find all and that's going to return a list of adoption and then we have a find by id which is of uh of type int and that's going to return an adoption maybe maybe not okay so we've got our adoption repository we've got our adoption the only thing that's left now is to hook it all together and we're going to do that with an adoption controller so new kotlin class adoption controller and uh this is going to be our rest controller so go ahead and add that and then we'll just use i've got a live template which actually spits this out this is all configurable so i can create these live templates that says okay get mapping in my case it would be adoption and then what's the function now i'm going to call it find all and it doesn't have any parameters and it's going to return a list of adoption and then the code is actually going to be return adoption finder okay now that doesn't exist alt enter we want to create a parameter create property adoption as constructor parameter is that what we want to do yes i think we should so why didn't it yep parameter type is invalid ah nevermind okay let's just add that that shouldn't have occurred but anyway private val adoption adoption repository okay so now we've got our adoption repository and let's go ahead and do another get mapping which in this case is going to be adoption and id this one's got a parameter it's going to be find by id the parameter we're going to have a path variable obviously because we need it for what we've just defined of type id and then we would be id of type int and this one i'm going to do is a single expression function in kotlin so essentially i can just say equals adoption find by id passing in the id and if you haven't found it then throw a resource status exception which is uh http status not found and record not found okay so we're done so technically that should actually work so if i come over here and i say run my pet clinic application i could basically just compile that run that and if i haven't done anything wrong that should all be working now this is a rest controller so it's got an http endpoint that i want to uh i don't want that right now go away please uh it's launching and i want to test my endpoint and this is where i was showing you before this navigation feature which i could basically say alt enter generate request in http client and it gives me the completion i hit alt enter run it and there you go i've got my json back okay so that's how i basically add a rest controller into my application now obviously we want to do a little bit more because we want to also showcase some of the things that uh you know most applications that you're using you're going to end up with some kind of view if you're obviously making a thin client then yes you're going to use some service client-side functionality but you know good old-fashioned web where you can have your server-side views is actually quite nice as well so let's go ahead and find the templates folder over here there we go and inside there i'm going to add a new file now i'm going to be a little bit lazy here and to save time i'm going to just take owner list paste it here and call it api list there you go api list right so now let's go ahead to this and delete all of this we don't want this right now this is all the owner this is going to be uh api and now we're going to get this to show so we need to create our controller and i'm going to create a new controller which is called api controller right so that's going to be again a class and that api controller has to be a regular controller in spring and i'm going to go ahead and create a data class which is going to be an api entry which is the information that we want to display so this is just going to be essentially you know we have this awesome api and what we want to do is give people information about how to use it because even though we've called it a rest controller it's not really self-documenting is it so let's just go ahead and give people some insight into how to use our application so we go ahead and do that and then i'm going to do another get mapping in this case what i want to do is essentially return api and this is going to be list api model which we're going to pass in with a mod of type model map and then we will return a string okay so i've got that and then essentially i'll do model model put and here we're going to say api entries and then we'll say i'm going to add a bunch of entries here which is a list of data that i have previously of this class that i've created and then i just do return api api list now since this already exists intellij gives me the option to actually navigate to it so command b and i can navigate to it and here what i'm going to do is essentially split out my table and i should now get completion of the data that i'm actually using so you can see here that i say api and then i get my category go down api i get my description and api i get my url okay and let's just move that up it's much nicer up there there you go and the last thing that i want to do is go over to my layout because i want to be able to access this and i let's go down to where for example i don't know over here and let's spit out our menu item over there reformat the code and there it's now showing our api so if we run this application now we should be able to actually see our new entry in our browser and then see some of the api documentation with the form that we just created so localhost 8080 and there we go api docs and there i don't know why i had that twice but anyway api docs adoption adoption adoption all these things that we added okay so that shows you a little bit how to actually write some code in intellij idea how it uses some of the features for templates uh getting advantage of the rest controller etc and now to hand it back to sandra who's going to show us what we always have to do with an application right which is essentially deliver it to the customer sandra we can't hear you i think you're muted hey thank you thank you so yeah so i'm back to the pac clinic application and as always we we talked about that we're going to then we're going to do an end-to-end scenario so let that push somewhere let it deploy somewhere and as it's not in a container yet let's see what other apps options we have so here i am connected to azure so you can use any cloud of your choice obviously but here i have the azure azure tools installed so the azure extension edit as well as the azure spring cloud extension edit and here i can easily deploy to app service just creating a new app instance or i just use something i've already used before and then just right click and deploy my application no it's not here so it's this one so i go with this button and then i can choose my application add the configuration and then go ahead so create a new web app enter the name so it's hello spring one go ahead of springy that should be there select the runtime stack and then the free tier and let that be deployed or i go with the most famous azure sprint cloud so our deployment solution for spring cloud um here i have the plaid clinic instance and i can just right click and choose deploy and then choose my java file which i can easily generate with maven install for instance and then click on select and deploy this application as well once it is deployed i can click on my pet clinic instance and access the public endpoint so there we go see yeah i am still on localhost but with the url i'm copy pasting from my other window so i am a bit confused with all the winners here i am inside the cloud inside the azure cloud running on um now it's temporary unavailable because we are updating the deployment because i clicked on deploy so it's updating but very soon it will come back and then i can actually work with this one and here i also want to show something because i also connected this one to mongodb and i can easily do that with the service binding inside the azure spring cloud portal or i just do this via environment variables and here i'm doing it with the environment very environment very habits so i'm having the mysql password the url the user i can actually also view them from here and uh also change them from here so i don't need to go inside the portal to do so which is very cool so the pet clinic is still deploying and for app service we saw that we can use the the applications um or the yeah like using tomcat or java se as the background or even um jboss but i could also deploy it inside a container and by just using docker so this one yes i want to go with the reverse base so this one is now running a pre-deployed task the the package job for the spring pad clinic and here is my updating deployment for azure sprint cloud i mean usually you don't deploy in two ways at the same time but for this showcasing why not right so that spawn should be here very very soon there we go there it is back so i can just try to find my owners again great and i could actually not only find owners but also add a new owner why don't we add a new owner and call it hello spring one living in street one two three name and telephone number as vet and add the owner right here and then um let's containerize this and then go back to hadi so first why don't we dockerize i mean we can't talk with about spring and all the other cool buzzwords without using containers and docker as well so i want to hand it over first to martin and then to hardy again thank you okay uh so as somebody mentioned um docker containerized has been booted spring boot has support to directly build a container image from your spring boot project you might be familiar with that run maven spring boot dash build image and then you get a container image um we have added some some nice little integration into the tools here that makes it a little bit easier so i can just add a docker target for my locally running docker agent to my boot dashboard and then i can just drag and drop or click deploy in this case i say debug this on my docker so what happens behind the scenes and what you see in the in the lock output is that it actually runs the main build um for spring boot regular spring boot maybe plug-in creating the container image using the package to build packs behind the scenes to create this container image and as a second step once the image is being built it creates a container to run this image on your local docker the nice thing about that is it does that without any additional injection for myself without any additional configuration that i need and it automatically connects my debugger to that so what i can see here is uh the project the image that's been built and the container that is running so i could kind of double click and try it out with just one click so that is nice but since i started this in debug mode in docker i could for example go ahead and say where is my welcome controller let's say here create a breakpoint click this again and directly jump to the debug view inside of eclipse so you see it's all wired up for you even though the app is running inside of the container and my app is configured to use springboot dev tools you might have heard about that before kind of a additional module that you can add and even that is now connected to the to the docker container so when i change my app inside of the ide it would update the app running inside of this container so i can i can see how the app behaves inside this containerized environment debug it change it without any kind of additional configuration additional interaction additional worries about how should i actually run this and going into the command line and do everything yourself and set everything up yourself it's kind of it happens automatically behind the scenes um so with that we have containerized stuff we deployed things to azure as sandra showed us uh hari wanna take it from here and show us more about the azure deployment yes absolutely i'm gonna just give you a brief overview of what happens once it's deployed now sandra has been kind enough to give me access to her instance of the deployment and i promised i wouldn't touch anything don't look at those weird things that i've added to the database sandra but anyway so you can see that here in my database tool window in intellij idea i also have azure right so i can easily connect to the azure instance i can query it and it's essentially just same as if i was just working locally right so we can see that this last one is hello spring one with sandra i assume you just added right now and then if i click on the spring cloud tool in the azure explorer which gives access to all the services i can see the instance that has been deployed so i can say access public endpoint streaming log let's click on the streaming log and that should open well it should start the streaming log and then you can hit the tool window here to access the actual streaming log so you can see that it's essentially showing you the log from the stream from the instance that you've deployed in azure so if i go ahead now here and say access public endpoint and i see my instance there and i can say for instance find owner add owner and we say hudi hariri address somewhere only we know and uh at owner we can see that the log is uh what supposedly should be updating oh numeric value five five five there you go watch way too many movies there five five five five five add owner there you go so we can see that log is scrolling it's showing me all of the output and if i come to my database refresh i should be able to see a new instance there you go that is added so the great thing is that of course you know from inside intellij it doesn't matter whether you're deploying locally or you're deploying uh to a cloud you basically are getting the same experience and um i i couldn't finish honestly uh sandra and martin because it feels awkward to be talking about intellij talking about uh spring without josh right i can't see josh i can't see anybody in the audience oh i can't even see the audience so i've come up with the best next thing right if i go this this is this is what i'm going to be doing next time i do this uh talk so that josh always kind of like keeps me company there we go we're going to find josh put him over here and if all goes well we now have josh in the background overlooking everything i do so with that i'm gonna hand it back over to you thank you hottie so this is kind of wrapping up the session more or less we have a few slides with resources so we showed you kind of basically three different things one is the spring tools distribution for eclipse so the eclipse-based spring tooling that you get from spring i o slash tools that's open source and free to use uh honey wanna say a few words about the uh intellij idea things there are also questions in the slack about which version do i need to get the springy tooling maybe you can highlight that i love the i love how you say springy i love that springy thing uh yes so the the obviously intelligent idea has a free open source community edition which doesn't provide the support for spring tooling uh but the ultimate edition is the one that you will get all of the spring tooling support for as well as uh all of the uh database support etc so it would be the ultimate edition and as as you point out on the slides it's available on a monthly or yearly subscription and if you're doing open source or education or many other ways you can get free licenses for that zander i want to talk to video studio code visual studio code is all free so you can just use it you can you should have the java extension pack installed as well as the spring extension pack and if you use a cloud you obviously also need the the cloud tooling and support for this one um yeah so that's it for me let's let's have another let's have another question up so there was there was also one question about how does it kind of the the spring tools and the vs code tools they the spring tools for eclipse and vs code they're kind of sort of similar in intellij is slightly different so there is indeed a piece of the spring tooling that is shared across visual studio code as part of the spring extension pack and the eclipse distribution for spring but it's only a part of that tooling so specific pieces are very very similar or kind of going back to the same code in the same language behind the scenes and parts especially the ey parts are slightly different so you will see a different wizard for example for start.spring.oh india's code then you would see that in eclipse which is basically um the reason for that is basically the ui interaction and the whole ideas behind the ides are different and so the tools adopt kind of the user flow and the idea how to offer tools and how to interact with these tools and and try to fit nicely in in that therefore it would not make sense to have kind of a highly wizardy-like ui showing up in vs code that would feel totally alien so that's why it's sometimes it's very similar sometimes slightly different and intellij has also kind of different tooling but um of course aims at the same goal making you more productive sandra you wanted to to talk more about some questions yeah i mean i don't think i have a question from from our chat but i do have one for eclipse so i i use it at university so like five years ago i yeah and actually like eight years ago i almost stopped using eclipse because it wasn't very stable and it doesn't seem to for me as a developer the the right tool to use but now i followed your your demo and it looks very impressive how did that happen and then did i miss that i think in the history of eclipse there was kind of a there was a huge popularity at the beginning in a very kind of stable stable version and then stuff changed on the platform level of eclipse and then there was indeed a time where it got unstable and a little bit buggy and and slower there was around the time when these eclipse version 4.0 4.14.2 maybe up to 4.5 4.6 appeared and then it really went up again and got a lot more stable it's supporting the latest java versions all the time and now as you can as you can see from it's kind of 4.0 to 4.5 maybe and now we had 4.20 so quite a number of versions happened and released happened in between so i think it's uh it's up to a really good really good level now thanks to the hard work of many people from the community actually yeah i mean i worked then at an organization and then i expect my company to pay for proper license and then i move towards intellij but yeah it feels like eclipse can be a solution for you if if you don't have the money or if you're in in the early career if visual studio code is not enough for you because me personally i open up almost everything first in vs code and then switch if it's not enough i'm not sure am i the only one who's using different ides or is it maybe just me who can't decide there was one question about the intellij while you were showing showing your demo hardy and one question from justin on the slack channel is the sequel to create the adoptions table available somewhere within intellij uh yes so that was actually a ddl data definition language a file that i had in intellij idea and essentially what i did was just open the file and say run and then it ran it inside intellij id and created the database but it's just a you know just a table that i added to pet clinic i mean it's not in the actual source code of pet cleaning it's it is on my repository my version of pet clinic which is uh kotlin no i mean my pet clinic is java but that file is called it and and maybe what one more question for intellij is that okay yes um [Music] tara is asking in intellij can i view the lock of a spring boot application deployed in kubernetes on aws and if so how uh i believe i okay i i believe you can because there's an aws toolkit as well uh but don't uh quote me on that if you want follow up with me uh later on and i will get you a 100 response uh my i think the next slide actually martin you have our contact details right yeah if you can reach me uh or you can reach me at hadi hadi jetbrains.com and i'll i'll follow up with you on that yeah so the logs are all in inside the the plugins of of the cloud vendors so i am aware or i know that the azure logs comes from the azure tooling plugin so it must be in the aws plugin as well yeah i mean there is uh aws toolkit which the aws folks have created um so i'm i guess that there is access to logs but i would need to make sure yeah thank you people love your josh background honey it's also interesting i love it too so i wish you would have added it earlier i i didn't in case i messed something up i wouldn't want him to be embarrassed right so um i added it afterwards so i think with that we can wrap it up and please if you have further questions feel free to jump on the q a session that we are all on afterwards um and with that from my side thanks for joining hope you enjoyed this session and getting a nice overview about the different tooling support and the different ide so whatever you prefer pick the ide of your choice and get awesome spring tooling inside of your preferred ide if you have further feedback contact us on twitter much appreciated to hear from you about what is working what is not working additional questions feature requests enhancement requests anything basically it's all welcome and thanks for watching hey hottie martin sandra thank you so much for your presentation i'm like oh man i'm like which one to use they all have such fantastic features so folks if you have any additional questions like martin said please join in the zoom chat and feel free to ask them questions learn you know that little bit of extra more information about um what tooling is available and where and which which one kind of gives you that makes you feel most productive uh with that being said our next talk which is going to be brought to you by jonathan and martine it's called being going to be on uh tracing issues with your app or sorry tracing issues in your application and that will start at right at 105 pm eastern standard time thank you look forward to seeing you you
Info
Channel: SpringDeveloper
Views: 5,076
Rating: 4.9069767 out of 5
Keywords: Web Development (Interest), spring, pivotal, Web Application (Industry) Web Application Framework (Software Genre), Java (Programming Language), Spring Framework, Software Developer (Project Role), Java (Software), Weblogic, IBM WebSphere Application Server (Software), IBM WebSphere (Software), WildFly (Software), JBoss (Venture Funded Company), cloud foundry, spring boot, spring cloud
Id: xK9QRpjyFGs
Channel Id: undefined
Length: 54min 27sec (3267 seconds)
Published: Sat Sep 25 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.