Josh Long is a Spring Developer Advocate working for Pivotal. He starts the vJUG session off at http://start.spring.io, a site that lets you select which specific components you want to use in your new application and goes on to generate your boilerplate project files for you, based on your these selections, including maven and gradle build artefacts, with dependencies. You can then download this as a zipped file to import into your preferred IDE.
Josh uses the Spring Tool Suite (STS) which is an open source eclipse flavoured IDE that enhances your Spring development environment with Spring guides and wizards making your experience simpler and quicker. Josh starts with a basic Boot application and builds up from there. Hang on, what is a Boot application? A Boot application is an app that makes use of the Spring Boot abstraction layer. This layer sits between a user and the Spring 4 framework and simplifies the ‘getting started’ experience.
Josh uses Doge, the dog meme, through his application example and starts by adding MongoDB support to this simple app for data access, using Spring Data MongoDB. He creates a repository and adds it to the application, but critically, when he goes to run the application, he does it just via a few clicks in STS, which invokes the main method of his application and runs it automatically in an embedded Tomcat environment. Oh by the way, the repository config was also read and set up by Spring Boot – neat, right?
We then move on to file manipulation, so Josh uses GridFS templates from MongoDB and goes on to add a Service Tier to his application that adds and removes photos to and from the filesystem, using GridFS in the background. To expose the Service, Josh adds a REST API via the Spring RestController mechanism, introduced in Spring 4.
Check out the video for the session in full including WebSocket additions for notifications, extracting JMX information and Graphite integration.
Next up we have Kohsuke Kawaguchi, founder of Jenkins, from Cloudbees talking at the vJUG on 23rd April in a session entitled “Evolving Code Without Breaking Compatibility”. You can register for that session here!