Full-Stack Java Development
with Spring Boot & VueJS
www.danvega.dev/spring-one-2021
• Husband & Father


• Enterprise Java Architect at Briebug


• Cleveland


• Content Creator


• Blog


• YouTube


• Course Creator
About Me
• Husband & Father


• Enterprise Java Architect at Briebug


• Cleveland


• Content Creator


• Blog


• YouTube


• Course Creator
About Me
• Husband & Father


• Enterprise Java Architect at Briebug


• Cleveland


• Content Creator


• Blog


• YouTube


• Course Creator
About Me
• Husband & Father


• Enterprise Java Architect at Briebug


• Cleveland


• Content Creator


• Blog


• YouTube


• Course Creator
About Me
Spring Boot + VueJS
• Spring Framework


• Open Source Framework


• Java / Kotlin / Groovy


• Maven / Gradle


• What can Spring Do?


• Web Applications


• Cloud


• Microservices


• Serverless


• Event Driven


• Much More
What is Spring?
• Opinionated view of building Spring Applications


• start.spring.io


• Starter Dependencies


• Auto Con
fi
guration


• Production Ready Features


• Metrics


• Health Checks


• Externalized Con
fi
guration
What is Spring Boot?
Spring Projects
• Spring Framework


• Spring Boot


• Spring Data


• Spring Cloud


• Spring Cloud Data Flow


• Spring Security


• Spring GraphQL


• Spring Session
• Spring Integration


• Spring HATEOAS


• Spring REST Docs


• Spring Batch


• Spring AMQP


• Spring CredHub


• Spring Flo
• Spring Apache Kafka


• Spring Roo


• Spring Shell


• Spring Statemachine


• Spring Vault


• Spring Web Flow


• Spring Web Services
• JavaScript Frameworks / Libraries


• Vue / React / Angular / Svelte


• Progressive JavaScript Framework


• Open Source


• Easy to learn


• HTML / CSS / JavaScript


• Great documentation


• Great ecosystem and community
What is VueJS
Ice Cream is my agenda
• Progressive Vue


• Monolith


• Single Page Application (SPA)
Agenda
Progressive Vue
pro·gres·sive
“Happening or developing gradually or in
stages; proceeding step by step”
https://github.com/vuejs/petite-vue
Petite Vue is an alternative distribution of Vue
optimized for progressive enhancement. It
provides the same template syntax and reactivity
mental model with standard Vue. However, it is
speci
fi
cally optimized for "sprinkling" small
amount of interactions on an existing HTML page
rendered by a server framework.
• Only ~5.8kb


• Vue-compatible template syntax


• DOM-based, mutates in place


• Driven by @vue/reactivity
Petite Vue
Monolithic Application
Wikipedia
“Asoftwaresystemiscalled“monolithic”if ithasamonolithicarchitecture,
inwhichfunctionallydistinguishableaspectsareallinterwoven,rather
thancontainingarchitecturallyseparatecomponents”
• Pros


• Single Deployable JAR


• Simplicity


• Performance


• Cons


• Single Deployable JAR


• Tight Coupling
Monolith Approach
Single Page Applications (SPA)
Wikipedia
“Asingle-pageapplicationisawebapplicationorwebsitethatinteractswiththeuser
bydynamicallyrewritingthecurrentwebpagewithnewdatafromthewebserver,
insteadof thedefaultmethodof awebbrowserloadingentirenewpages.”
• Pros


• 2 Deployable assets


• Louse Coupling


• Cons


• 2 Deployable assets


• Single Deployable JAR


• Perfromance *
SPA Approach
Questions?

Full-Stack Development with Spring Boot and VueJS