SlideShare a Scribd company logo
© 2013 Spring, by Pivotal
Zero Effort Spring: An intro to Spring Boot
Scott Deeg, Sr. Field Engineer, Pivotal
sdeeg@gopivotal.com
22
Agenda
Goal: Introduce developers to Spring Boot, an opinionated way to rapidly
build production grade Spring applications quickly and with minimal fuss.
 Introduction to Spring Boot
• Where it fits in the Spring eco system
• Goals, high level features, etc.
 Demo: Quick Start
 Behind the scenes
 More demos, more Boot
 End bits (links and such)
 ToDo: Adding new features to Boot
33
What is Pivotal?
 Vmware and EMC spin out
• vFabric from vmware
• Greenplum MPP DB and Hadoop from EMC
• Agile development acquisitions Pivotal Labs and Xtreme Labs
 Paul Maritz CEO
• Former CEO vmware.
 Custodian of various OSS projects including Spring
• and RabbitMQ, Redis, CloudFondry, Groovy/Grails, …
 Commercial interests in Big/Fast Data, PaaS, Enterprise tooling
• Spring is an enabling technology
44
What’s New in Spring
55
Spring vs JEE … ready … FIGHT!
NOT going there! :-)
66
Spring 4.0 Highlights
 Java/EE
• Java 8
• JSR-310 Date/Time API
• JSR-236 Concurrency Utils
• JSR-356 WebSocket
• Servlet 3.1
• Bean Validation 1.1
• JPA 2.1
• JTA 1.2
• JMS 2.0
 Spring iO
 (Large feature set, and getting larger)
77
Big Spring Diagram with Boot
WEB
Controllers, REST,
WebSocket
INTEGRATION
Channels, Adapters,
Filters, Transformers
BATCH
Jobs, Steps,
Readers, Writers
BIG DATA
Ingestion, Export,
Orchestration, Hadoop
DATA
NON-RELATIONALRELATIONAL
CORE
GROOVYFRAMEWORK SECURITY REACTOR
GRAILS
Full-stack, Web
XD
Stream, Taps, Jobs
BOOT
Bootable, Minimal, Ops-Ready
88
Spring Boot
Intro
1010
Goals
 Provide a radically faster and widely accessible getting started
experience
 Be opinionated out of the box, but get out of the way quickly as
requirements start to diverge from the defaults
 Provide a range of non-functional features that are common to large
classes of projects (e.g. embedded servers, security, metrics, health
checks, externalized configuration)
 Absolutely no code generation and no requirement for XML
configuration
 V0.5.0M4
(Question: What about Roo?)
1111
Getting Started REALLY Quickly
app.groovy:
@Controller
class ThisWillActuallyRun
{
@RequestMapping("/")
@ResponseBody
String home() { return "Hello World!" }
}
then
$ spring run app.groovy
1212
Demo
Quick Start
1313
What Just Happened?
 SpringApplication: convenient way to write a main() method that
loads a Spring context
 @EnableAutoConfiguration: optional annotation that adds stuff to
your context, including...
 EmbeddedServletContainerFactory: added to your context if a
server is available on the classpath
 CommandLineRunner: a hook to run application-specific code after
the context is created
 JarLauncher was added to the JAR file
 It’s beginning to look a lot like Java …
1414
Demo
Doing it in Java
1616
Spring Boot Modules
Boot
Autoconfigure
Starters
CLI
Actuator
Tools
Samples
1717
Binding to Command Line Arguments
 SpringApplication binds its own bean properties to command line
arguments, and then adds them to the Spring Environment, e.g.
$ java -jar target/*.jar --server.port=9000
 Externalize Config
• Just put application.properties in your classpath, e.g.
application.properties
server.port: 9000
 Use YAML (if you must)
• Just put application.yml in your classpath
 Both properties and YAML add entries with period-separated paths
to the Spring Environment.
1818
Demo
Change the app behavior by changing parameters
1919
Add a Thymeleaf UI
 Add Thymeleaf to the classpath and see it render a view
 Spring Boot Autoconfigure has added all the boilerplate stuff
 Common configuration options via spring.thymeleaf.*, e.g.
spring.thymeleaf.prefix:classpath:/templates/ (location of templates)
spring.tjymeleaf.cache:true (set to false to reload templates when
changed)
 Extend and override:
add Thymeleaf IDialect beans add thymeleafViewResolver add
SpringTemplateEngine add defaultTemplateResolver
2121
Currently Available Auto-configured Behavior
 Embedded servlet container (Tomcat or Jetty) DataSource and
JdbcTemplate
JPA
Spring Data JPA (scan for repositories) Thymeleaf
 Batch processing
Reactor for events and async processing Actuator features
(Security, Audit, Metrics, Trace)
2222
The Actuator
 Adds common non-functional features to your application and
exposes MVC endpoints to interact with them.
 Security
Secure endpoints: /metrics, /health, /trace, /dump,
 /shutdown, /beans Audit
/info
 If embedded in a web app or web service can use the same port or a
different one (and a different network interface).
2323
Demo
Show me that!
2424
Other
 Security
• Use Actuator
• Can also use Spring Security
 Logging
• Spring Boot provides default configuration files for 3 common logging
frameworks: logback, log4j and java.util.logging
• Starters (and Samples) use logback
External configuration and classpath influence runtime behaviour
LoggingApplicationContextInitializer sets it all up
2525
Does Anybody Use This For Real?
We do
• Spring
Boot app
• Thymeleaf
UI
• Hosted on
Cloud
Foundry
2626
Links
Spring
• https://projects.spring.io/spring-boot
• https://github.com/spring-projects/spring-boot (on Github)
• http://spring.io/blog/2013/09/20/contributing-to-spring-boot-with-a-pull-request
Random Boot Blogs
• http://fbflex.wordpress.com/2013/10/01/a-spring-boot-generator-for-yeoman
© 2013 Spring, by Pivotal
Thanks!
2828
Learn More. Stay Connected.
Download now:
• springsource.org/spring-tool-suite-download (eclipse plugin)
• springsource.org/download/community (zip)
• springsource.org/spring-framework#maven (maven)
Monthly Newsletter: springsource.org/news-events
Twitter: twitter.com/springsource
YouTube: youtube.com/user/SpringSourceDev
RSS Feed: feeds.feedburner.com/springsource/OEVE
LinkedIn: springsource.org/linkedin

More Related Content

What's hot

Spring boot
Spring bootSpring boot
Spring boot
Gyanendra Yadav
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
Serhat Can
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
Alex Movila
 
Spring Boot
Spring BootSpring Boot
Spring Boot
Jiayun Zhou
 
Xke spring boot
Xke spring bootXke spring boot
Xke spring boot
sourabh aggarwal
 
Spring Boot
Spring BootSpring Boot
Spring Boot
koppenolski
 
Spring boot - an introduction
Spring boot - an introductionSpring boot - an introduction
Spring boot - an introduction
Jonathan Holloway
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
tola99
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
Santosh Kumar Kar
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
Jakub Kubrynski
 
Spring Boot
Spring BootSpring Boot
Spring Boot
Pei-Tang Huang
 
Spring boot
Spring bootSpring boot
Spring boot
Bhagwat Kumar
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
NexThoughts Technologies
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpa
Jeevesh Pandey
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
07.pallav
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
Trey Howard
 
Spring Core
Spring CoreSpring Core
Spring Core
Pushan Bhattacharya
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
Hamid Ghorbani
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
Josué Neis
 
Express node js
Express node jsExpress node js
Express node js
Yashprit Singh
 

What's hot (20)

Spring boot
Spring bootSpring boot
Spring boot
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Xke spring boot
Xke spring bootXke spring boot
Xke spring boot
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Spring boot - an introduction
Spring boot - an introductionSpring boot - an introduction
Spring boot - an introduction
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Spring boot
Spring bootSpring boot
Spring boot
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpa
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 
Spring Core
Spring CoreSpring Core
Spring Core
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
 
Express node js
Express node jsExpress node js
Express node js
 

Similar to Spring boot

Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
DataArt
 
Spring Boot Whirlwind Tour
Spring Boot Whirlwind TourSpring Boot Whirlwind Tour
Spring Boot Whirlwind Tour
VMware Tanzu
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
VMware Tanzu
 
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry MeetupIntro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Josh Ghiloni
 
Datasheet weblogicpluginforrd
Datasheet weblogicpluginforrdDatasheet weblogicpluginforrd
Datasheet weblogicpluginforrd
MidVision
 
Integrating Splunk into your Spring Applications
Integrating Splunk into your Spring ApplicationsIntegrating Splunk into your Spring Applications
Integrating Splunk into your Spring Applications
Damien Dallimore
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
hchen1
 
Plone FSR
Plone FSRPlone FSR
Plone FSR
fulv
 
Cloud Platforms for Java
Cloud Platforms for JavaCloud Platforms for Java
Cloud Platforms for Java
3Pillar Global
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Lars Vogel
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
DonghuKIM2
 
Spring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsSpring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applications
michaelaaron25322
 
RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
 RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
Stéphane Leroy
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Lars Vogel
 
Spring Cloud Data Flow Overview
Spring Cloud Data Flow OverviewSpring Cloud Data Flow Overview
Spring Cloud Data Flow Overview
VMware Tanzu
 
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity  and Performance Comparison AnalysisSOA Knowledge Kit, Developer Productivity  and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
Clever Moe
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for Change
Eric Wyles
 
Spring boot
Spring bootSpring boot
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User GroupIs Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
Chase Douglas
 

Similar to Spring boot (20)

Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
 
Spring Boot Whirlwind Tour
Spring Boot Whirlwind TourSpring Boot Whirlwind Tour
Spring Boot Whirlwind Tour
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry MeetupIntro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
 
Datasheet weblogicpluginforrd
Datasheet weblogicpluginforrdDatasheet weblogicpluginforrd
Datasheet weblogicpluginforrd
 
Integrating Splunk into your Spring Applications
Integrating Splunk into your Spring ApplicationsIntegrating Splunk into your Spring Applications
Integrating Splunk into your Spring Applications
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
Plone FSR
Plone FSRPlone FSR
Plone FSR
 
Cloud Platforms for Java
Cloud Platforms for JavaCloud Platforms for Java
Cloud Platforms for Java
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
 
Spring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsSpring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applications
 
RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
 RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Spring Cloud Data Flow Overview
Spring Cloud Data Flow OverviewSpring Cloud Data Flow Overview
Spring Cloud Data Flow Overview
 
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity  and Performance Comparison AnalysisSOA Knowledge Kit, Developer Productivity  and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for Change
 
Spring boot
Spring bootSpring boot
Spring boot
 
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User GroupIs Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
 

Recently uploaded

The History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal EmbeddingsThe History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal Embeddings
Zilliz
 
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
sunilverma7884
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
Steven Carlson
 
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptxMAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
janagijoythi
 
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
FIDO Alliance
 
kk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdfkk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdf
KIRAN KV
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
AimanAthambawa1
 
Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024
siddu769252
 
Zaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdfZaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdf
AmandaCheung15
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
Jimmy Lai
 
Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17
Bhajan Mehta
 
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
Zilliz
 
Accelerating Migrations = Recommendations
Accelerating Migrations = RecommendationsAccelerating Migrations = Recommendations
Accelerating Migrations = Recommendations
isBullShit
 
Finetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and DefendingFinetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and Defending
Priyanka Aash
 
Retrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with RagasRetrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with Ragas
Zilliz
 
The Path to General-Purpose Robots - Coatue
The Path to General-Purpose Robots - CoatueThe Path to General-Purpose Robots - Coatue
The Path to General-Purpose Robots - Coatue
Razin Mustafiz
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
bellared2
 
Tailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer InsightsTailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer Insights
SynapseIndia
 
Perth MuleSoft Meetup July 2024
Perth MuleSoft Meetup July 2024Perth MuleSoft Meetup July 2024
Perth MuleSoft Meetup July 2024
Michael Price
 

Recently uploaded (20)

The History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal EmbeddingsThe History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal Embeddings
 
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
 
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptxMAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
 
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
UX Webinar Series: Essentials for Adopting Passkeys as the Foundation of your...
 
kk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdfkk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdf
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
 
Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024
 
Zaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdfZaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdf
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
 
Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17
 
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
Garbage In, Garbage Out: Why poor data curation is killing your AI models (an...
 
Accelerating Migrations = Recommendations
Accelerating Migrations = RecommendationsAccelerating Migrations = Recommendations
Accelerating Migrations = Recommendations
 
Finetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and DefendingFinetuning GenAI For Hacking and Defending
Finetuning GenAI For Hacking and Defending
 
Retrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with RagasRetrieval Augmented Generation Evaluation with Ragas
Retrieval Augmented Generation Evaluation with Ragas
 
The Path to General-Purpose Robots - Coatue
The Path to General-Purpose Robots - CoatueThe Path to General-Purpose Robots - Coatue
The Path to General-Purpose Robots - Coatue
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
 
Tailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer InsightsTailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer Insights
 
Perth MuleSoft Meetup July 2024
Perth MuleSoft Meetup July 2024Perth MuleSoft Meetup July 2024
Perth MuleSoft Meetup July 2024
 

Spring boot

  • 1. © 2013 Spring, by Pivotal Zero Effort Spring: An intro to Spring Boot Scott Deeg, Sr. Field Engineer, Pivotal sdeeg@gopivotal.com
  • 2. 22 Agenda Goal: Introduce developers to Spring Boot, an opinionated way to rapidly build production grade Spring applications quickly and with minimal fuss.  Introduction to Spring Boot • Where it fits in the Spring eco system • Goals, high level features, etc.  Demo: Quick Start  Behind the scenes  More demos, more Boot  End bits (links and such)  ToDo: Adding new features to Boot
  • 3. 33 What is Pivotal?  Vmware and EMC spin out • vFabric from vmware • Greenplum MPP DB and Hadoop from EMC • Agile development acquisitions Pivotal Labs and Xtreme Labs  Paul Maritz CEO • Former CEO vmware.  Custodian of various OSS projects including Spring • and RabbitMQ, Redis, CloudFondry, Groovy/Grails, …  Commercial interests in Big/Fast Data, PaaS, Enterprise tooling • Spring is an enabling technology
  • 5. 55 Spring vs JEE … ready … FIGHT! NOT going there! :-)
  • 6. 66 Spring 4.0 Highlights  Java/EE • Java 8 • JSR-310 Date/Time API • JSR-236 Concurrency Utils • JSR-356 WebSocket • Servlet 3.1 • Bean Validation 1.1 • JPA 2.1 • JTA 1.2 • JMS 2.0  Spring iO  (Large feature set, and getting larger)
  • 7. 77 Big Spring Diagram with Boot WEB Controllers, REST, WebSocket INTEGRATION Channels, Adapters, Filters, Transformers BATCH Jobs, Steps, Readers, Writers BIG DATA Ingestion, Export, Orchestration, Hadoop DATA NON-RELATIONALRELATIONAL CORE GROOVYFRAMEWORK SECURITY REACTOR GRAILS Full-stack, Web XD Stream, Taps, Jobs BOOT Bootable, Minimal, Ops-Ready
  • 9. 1010 Goals  Provide a radically faster and widely accessible getting started experience  Be opinionated out of the box, but get out of the way quickly as requirements start to diverge from the defaults  Provide a range of non-functional features that are common to large classes of projects (e.g. embedded servers, security, metrics, health checks, externalized configuration)  Absolutely no code generation and no requirement for XML configuration  V0.5.0M4 (Question: What about Roo?)
  • 10. 1111 Getting Started REALLY Quickly app.groovy: @Controller class ThisWillActuallyRun { @RequestMapping("/") @ResponseBody String home() { return "Hello World!" } } then $ spring run app.groovy
  • 12. 1313 What Just Happened?  SpringApplication: convenient way to write a main() method that loads a Spring context  @EnableAutoConfiguration: optional annotation that adds stuff to your context, including...  EmbeddedServletContainerFactory: added to your context if a server is available on the classpath  CommandLineRunner: a hook to run application-specific code after the context is created  JarLauncher was added to the JAR file  It’s beginning to look a lot like Java …
  • 15. 1717 Binding to Command Line Arguments  SpringApplication binds its own bean properties to command line arguments, and then adds them to the Spring Environment, e.g. $ java -jar target/*.jar --server.port=9000  Externalize Config • Just put application.properties in your classpath, e.g. application.properties server.port: 9000  Use YAML (if you must) • Just put application.yml in your classpath  Both properties and YAML add entries with period-separated paths to the Spring Environment.
  • 16. 1818 Demo Change the app behavior by changing parameters
  • 17. 1919 Add a Thymeleaf UI  Add Thymeleaf to the classpath and see it render a view  Spring Boot Autoconfigure has added all the boilerplate stuff  Common configuration options via spring.thymeleaf.*, e.g. spring.thymeleaf.prefix:classpath:/templates/ (location of templates) spring.tjymeleaf.cache:true (set to false to reload templates when changed)  Extend and override: add Thymeleaf IDialect beans add thymeleafViewResolver add SpringTemplateEngine add defaultTemplateResolver
  • 18. 2121 Currently Available Auto-configured Behavior  Embedded servlet container (Tomcat or Jetty) DataSource and JdbcTemplate JPA Spring Data JPA (scan for repositories) Thymeleaf  Batch processing Reactor for events and async processing Actuator features (Security, Audit, Metrics, Trace)
  • 19. 2222 The Actuator  Adds common non-functional features to your application and exposes MVC endpoints to interact with them.  Security Secure endpoints: /metrics, /health, /trace, /dump,  /shutdown, /beans Audit /info  If embedded in a web app or web service can use the same port or a different one (and a different network interface).
  • 21. 2424 Other  Security • Use Actuator • Can also use Spring Security  Logging • Spring Boot provides default configuration files for 3 common logging frameworks: logback, log4j and java.util.logging • Starters (and Samples) use logback External configuration and classpath influence runtime behaviour LoggingApplicationContextInitializer sets it all up
  • 22. 2525 Does Anybody Use This For Real? We do • Spring Boot app • Thymeleaf UI • Hosted on Cloud Foundry
  • 23. 2626 Links Spring • https://projects.spring.io/spring-boot • https://github.com/spring-projects/spring-boot (on Github) • http://spring.io/blog/2013/09/20/contributing-to-spring-boot-with-a-pull-request Random Boot Blogs • http://fbflex.wordpress.com/2013/10/01/a-spring-boot-generator-for-yeoman
  • 24. © 2013 Spring, by Pivotal Thanks!
  • 25. 2828 Learn More. Stay Connected. Download now: • springsource.org/spring-tool-suite-download (eclipse plugin) • springsource.org/download/community (zip) • springsource.org/spring-framework#maven (maven) Monthly Newsletter: springsource.org/news-events Twitter: twitter.com/springsource YouTube: youtube.com/user/SpringSourceDev RSS Feed: feeds.feedburner.com/springsource/OEVE LinkedIn: springsource.org/linkedin