SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
Spring	Boot
Who	Am	I?
• You	will	find	me	here
https://github.com/tan9
http://stackoverflow.com/users/3440376/tan9
• My	Java	experience
• Java	and	Java	EE	development	– 8+	years
• Spring	Framework	– 6+	years
• Spring	Boot	– 1.5	years
2
Before	We Get Started…
• Join	the	channel:	http://bit.do/spring-boot
• Direct	link:	https://gitter.im/tan9/spring-boot-training
• Sign	in	using	your	GitHub account
• Or	sign	up	right	now!
3
Spring	Framework
4
Spring	Framework
• Inversion	of	Control	(IoC)	container
• Dependency	Injection	(DI)
• Bean	lifecycle	management
• Aspect-Oriented	Programming	(AOP)
• “Plumbing”	of	enterprise	features
• MVC	w/	RESTful,	TX,	JDBC,	JPA,	JMS…
• Neutral
• Does	not	impose	any	specific	programming	model.
• Supports	various	third-party	libraries.
5
Spring	2.5	JavaConfig
• Favor	Java	Annotation (introduced	in	Java	SE	5)
• @Controller,	 @Service and	@Repository
• @Autowired
• Thin	XML	configuration	file
6
<context:annotation-config/>
<context:component-scan
base-package="com.cht"/>
JavaConfig Keep	Evolving
• @Bean &	@Configuration since	3.0
• Get	rid	of	XML	configuration	files.
• @ComponentScan,	@Enable* and
@Profile since	3.1
• With	WebApplicationInitializer powered	by	
Servlet	3,	say	goodbye	to	web.xml too.
• @Conditional since	4.0
• We’re	able	to	filter	beans	programmatically.
7
Maven	Bill-Of-Materials	(BOM)
• Keep	library	versions	in	ONE	place.
• Import	from	POM’s	<dependencyManagement>
section.
• Declare	dependencies without	<version>:
8
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
Things Getting	Complicated
• Spring	seldom	deprecates	anything
• And	offers	little	opinion	or	guidance.
• Older	approaches	remain	at	the	top	in	search	results.
• Bootstrapping	can	be	painful
• Due	to	the	sheer	size	and	growth	rate	of	the	portfolio.
• Spring	is	an	incredibly	powerful	tool…
• Once	you	get	it	setup.
Should	you	use	spring	boot	in	your	next	project?	- Steve	Perkins
https://steveperkins.com/use-spring-boot-next-project/ 9
Spring	Boot
10
ThoughtWorks Technology	Radar
11
ThoughtWorks Techonlogy Rader	April	‘16
https://www.thoughtworks.com/radar
Spring	Boot
• Opinionated
• Convention over	configuration.
• Production-ready	non-functional	features
• Embedded	servers,	security,	metrics,	health	checks…
• Speed	up
• Designed	to	get	you	up	and	running	as	quickly	as	
possible.
• Plain	Java
• No	code	generation	and	no	XML	configuration.	
12
System	Requirements
• Spring	Boot	1.3	requires	Java	7+ by	default
• Java	8	is	recommended	if	at	all	possible.
• Can	use	with	Java	6	with	some	additional	configuration.
• Servlet	3.0+ container
• Embedded Tomcat	7+,	Jetty	8+,	Undertow	1.1+.
• Oracle	WebLogic	Server	12c	or	later.
• IBM	WebSphere	Application	Server	8.5	or	later.
• JBoss EAP	6	or	later.
13
Boot	With	Apache	Maven
14
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.cht</groupId>
<artifactId>inception</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Starter	POMs
• Make	easy	to	add	jars	to	your	classpath.
• spring-boot-starter-parent
• Provides	useful	Maven	defaults.
• Defines	version tags	for	“blessed”	dependencies.
• spring-boot-starter-*
• Provides	dependencies	you	are	likely	to	need	for	*.
15
First	Class
package com.cht.inception;
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;
@RestController
@EnableAutoConfiguration
public class Application {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
16
mvn spring-boot:run
17
. ____ _ __ _ _
/ / ___'_ __ _ _(_)_ __ __ _    
( ( )___ | '_ | '_| | '_ / _` |    
/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |___, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.5.RELEASE)
2016-07-03 23:38:04.683 INFO 93490 --- [ main] com.cht.inception.Application : Starting Application on
2016-07-03 23:38:04.685 INFO 93490 --- [ main] com.cht.inception.Application : No active profile set,
2016-07-03 23:38:04.718 INFO 93490 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springfra
2016-07-03 23:38:05.482 INFO 93490 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with
2016-07-03 23:38:05.491 INFO 93490 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat
2016-07-03 23:38:05.491 INFO 93490 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine
2016-07-03 23:38:05.548 INFO 93490 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring emb
2016-07-03 23:38:05.548 INFO 93490 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationConte
2016-07-03 23:38:05.702 INFO 93490 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: 'dispa
2016-07-03 23:38:05.705 INFO 93490 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'charac
2016-07-03 23:38:05.705 INFO 93490 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'hidden
2016-07-03 23:38:05.705 INFO 93490 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'httpPu
2016-07-03 23:38:05.705 INFO 93490 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'reques
2016-07-03 23:38:05.833 INFO 93490 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerA
2016-07-03 23:38:05.876 INFO 93490 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto jav
2016-07-03 23:38:05.879 INFO 93490 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" ont
2016-07-03 23:38:05.879 INFO 93490 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produc
2016-07-03 23:38:05.898 INFO 93490 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webja
2016-07-03 23:38:05.898 INFO 93490 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] o
2016-07-03 23:38:05.921 INFO 93490 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/fa
2016-07-03 23:38:05.986 INFO 93490 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for J
2016-07-03 23:38:06.032 INFO 93490 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(
2016-07-03 23:38:06.036 INFO 93490 --- [ main] com.cht.inception.Application : Started ⏎
Application in 1.529 seconds (JVM running for 4.983)
18
Application	Properties
• Place	application.yaml in	classpath
• For	example:
• Configuring	embedded	server		can	be	as	easy	as:
19
server:
address: 127.0.0.1
port: 5566
YAML	(YAML	Ain’t Markup	Language)
• Superset	of	JSON.
• UTF-8!
• Really	good	for	hierarchical	configuration	data.
• But…	can't	be	loaded	via	the	@PropertySource.
20
my:
servers:
- dev.bar.com
- foo.bar.com
my.servers[0]=dev.bar.com
my.servers[1]=foo.bar.com
YAML
Java	Properties
Executable	JAR
• $ mvn package
• Build	and	package	the	project.
• Spring	Boot	will	repackage	it	into	an	executable	one.
• $ java -jar target/
inception-0.0.1-SNAPSHOT.jar
• It’s	just	running.
• The	jar	is	completely	self-contained,	you	can	deploy	and	
run	it	anywhere	(with	Java).
21
Spring	Boot:	Dev
22
Quick	Start
• Spring	Initializr Web	Service
• http://start.spring.io
• SpringSourceTools	Suite	(eclipse-based)
• https://spring.io/tools/sts/all
• IntelliJ	IDEA	Ultimate	(Costs	$$$)
• https://www.jetbrains.com/idea/
• Or	import	Spring	Initializr generated	project	from	IntelliJ	
IDEA	Community	Edition.
23
Developer	Tools
• Set	dev	properties,	like	disabling	cache.
• Automatic	restart when	resources	changed.
• LiveReload the	browser.
• Remote	update	and	debug.
24
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
Externalized	Configuration
1. Command	line	arguments.
2. Properties	from SPRING_APPLICATION_JSON.
3. JNDI	attributes	from java:comp/env.
4. Java	System	properties	(System.getProperties()).
5. OS	environment	variables.
6. RandomValuePropertySource for	random.*.
7. Application	property	files.
8. @PropertySource on	@Configuration.
9. SpringApplication.setDefaultProperties().
25
Application	Property	Files	Lookup
• Profile	and	File	Type	Priority
1. application-{profile|default}.properties	/	.yml /		.yaml
2. application.properties/	.yml /	.yaml
• Location	Priority
1. A	/config subdirectory	of	the	current	directory.
2. The	current	directory.
3. A	classpath /config package.
4. The	classpath root.
26
Property	Name	Relaxed	Binding
Property Note
person.firstName Standard	camel	case	syntax.
person.first-name Dashed	notation,	recommended	
for	use	in	.properties	and	.yml files.
person.first_name Underscore	notation,	alternative	
format	for	use	in	.properties	and	
.yml files.
PERSON_FIRST_NAME Upper	case	format.	Recommended	
when	using	a	system	environment	
variables.
27
@ConfigurationProperties
• It	is	Type-safe.
• More	clear	and	expressive	than	
@Value("{connection.username}")
28
@lombok.Data
@Component
@ConfigurationProperties(prefix = "connection")
public class ConnectionProperties {
private String username = "anonymous";
@NotNull
private InetAddress remoteAddress;
}
Incorporate	Our	@Configurations
29
@Configuration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication {
...
}
@Order(Ordered.LOWEST_PRECEDENCE - 1)
public class
EnableAutoConfigurationImportSelector
implements DeferredImportSelector...
Configuration	Override	
Convention
• Always	look	up	the	properties	list	first
• http://docs.spring.io/spring-
boot/docs/current/reference/html/common-
application-properties.html
• Write	@Configurations	and	@Beans	if	needed
• Then	@ComponentScan them	in.
• That’s	what	you	are	really	good	at.
• AutoConfigurations just	serves	as	a	fallback.
30
Spring	Boot:	Run
31
Spring	Boot	Actuator
“An	actuator	is	a	manufacturing	term,	referring	to	a	
mechanical	device	for	moving	or	controlling	
something.
Actuators	can	generate	a	large	amount	of	motion	
from	a	small	change.”
32
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Production-Ready	Endpoints
• Spring	Configuration
• autoconfig,	beans,	configprops,	env and	mappings
• Logging	&	stats
• logfile,	metrics,	trace
• Informational
• dump,	info,	flyway,	liquibase
• Operational
• shutdown
33
Health	Information
• Beans	implements	HealthIndicator
• You	can	@Autowired what	you	need	for	health	
checking.
• Result	will	be	cached	for	1	seconds	by	default.
• Out-of-the-box	indicators
• Application,	DiskSpace,	DataSource,	Mail,	Redis,	
Elasticsearch,	Jms,	Cassandra,	Mongo,	Rabbit,	Solr…
34
Metrics
• Gauge
• records	a	single	value.
• Counter
• records	a	delta	(an	increment	or	decrement).
• PublicMetrics
• Expose	metrics	that	cannot	be	record	via	one	of	those	
two	mechanisms.	
35
Spring	Boot:	Ext
Custom	AutoConfigurationsand	ConfigurtaionProperties
36
Auto	Configuration
• META-INF/spring.factories
• Nothing	special	but	@Configuration.
• Spring	Boot	will	then	evaluate	all	AutoConfiguration
available	when	bootstrapping.
37
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=
com.cht.inception.autoconfigure.DemoAutoConfiguration
@ConditionalOn*
• Eliminating	all	@Configuration	will	not	work.
• Knowing	and	using	built-ins	where	possible
• @ConditionalOnBean
• @ConditionalOnClass
• @ConditionalOnMissingBean
• @ConditionalOnMissingClass
• @ConditionalOnProperty
• …	and	more
38
@Order matters
• Hints	for	Spring	Boot
• @AutoConfigureAfter
• @AutoConfigureBefore
• You	still	have	to	know	what	underlying
• Not	every	operation	is	idempotent	or	cumulative.
• WebSecurityConfigurerAdapter for	example.
39
@ConfigurationProperties
• Naming things	seriously
• There are only two hard things in Computer Science:
cache invalidation and naming things. -- Phil Karlton
• It	will	be	an	important	part	of	your	own	framework!
• Generates	properties	metadata	at	compile	time
• Located	at	META-INF/spring-configuration-
metedata.json.
• A	Spring	Boot-aware	IDE	will	be	great	help	for	you.
40
Deploying
41
Package	as	WAR
• POM.xml
• <packaging>war</packaging>
42
@SpringBootApplication
public class Application
extends SpringBootServletInitializer
implements WebApplicationInitializer {
...
}
JBoss EAP
• JBoss EAP	v6.0	– 6.2
• Have	to	remove	embedded	server.
• JBoss EAP	v6.x
• spring.jmx.enabled=false
• server.servlet-path=/*
• http://stackoverflow.com/a/1939642
• Multipart	request	charset	encoding	value	is	wrong.
• Have	to	downgrade	JPA	and	Hibernate.
• JBoss EAP	v7
• Haven’t	tried	yet.
43
Oracle	WebLogic	Server
• WebLogic	11g	and	below
• Not	supported.
• WebLogic	12c
• Filter	registration	logic	is	WRONG!
• https://github.com/spring-projects/spring-
boot/issues/2862#issuecomment-99461807
• Have	to	remove	embedded	server.
• Have	to	downgrade	JPA	and	Hibernate.
• Have	to	specify	<wls:prefer-application-
packages/> in	weblogic.xml.
44
IBM	WebSphere	AS
• WebSphere	AS	v8.5.5
• Have	to	remove	embedded	server.
• Have	to	downgrade	JPA	and	Hibernate.
45
What’s	Next?
46
Try	JHipster
https://jhipster.github.io/
and	to	learn	something	from	him.
47
References
• Introduction	to	Spring	Boot	- Dave	Syer,	Phil	Webb
• http://presos.dsyer.com/decks/spring-boot-intro.html
• Spring	Boot	Reference	Guide
• http://docs.spring.io/spring-boot/docs/current/
48

Contenu connexe

Tendances

Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Hitesh-Java
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - CoreDzmitry Naskou
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootJosué Neis
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot IntroductionJeevesh Pandey
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action Alex Movila
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!Jakub Kubrynski
 
Spring boot
Spring bootSpring boot
Spring bootsdeeg
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework tola99
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOPDzmitry Naskou
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewShahed Chowdhuri
 
Spring Boot & Actuators
Spring Boot & ActuatorsSpring Boot & Actuators
Spring Boot & ActuatorsVMware Tanzu
 

Tendances (20)

Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 
Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
 
Spring boot
Spring bootSpring boot
Spring boot
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
Xke spring boot
Xke spring bootXke spring boot
Xke spring boot
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 
Spring Core
Spring CoreSpring Core
Spring Core
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
 
Spring Boot & Actuators
Spring Boot & ActuatorsSpring Boot & Actuators
Spring Boot & Actuators
 

En vedette

Microservices with Spring Boot
Microservices with Spring BootMicroservices with Spring Boot
Microservices with Spring BootJoshua Long
 
Spring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanSpring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanPei-Tang Huang
 
REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfkToshiaki Maki
 
jDays - Spring Boot under the Hood
jDays - Spring Boot under the HoodjDays - Spring Boot under the Hood
jDays - Spring Boot under the HoodNicolas Fränkel
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudEberhard Wolff
 
Backday Xebia : Découvrez Spring Boot sur un cas pratique
Backday Xebia : Découvrez Spring Boot sur un cas pratiqueBackday Xebia : Découvrez Spring Boot sur un cas pratique
Backday Xebia : Découvrez Spring Boot sur un cas pratiquePublicis Sapient Engineering
 
Spring Framework Essentials
Spring Framework EssentialsSpring Framework Essentials
Spring Framework EssentialsEdward Goikhman
 
мифы о спарке
мифы о спарке мифы о спарке
мифы о спарке Evgeny Borisov
 
Event sourcing with reactor and spring statemachine
Event sourcing with reactor and spring statemachineEvent sourcing with reactor and spring statemachine
Event sourcing with reactor and spring statemachineJimmy Lu
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌Tun-Yu Chang
 
Java garbage collection & GC friendly coding
Java garbage collection  & GC friendly codingJava garbage collection  & GC friendly coding
Java garbage collection & GC friendly codingMd Ayub Ali Sarker
 
Let's Learn to Talk to GC Logs in Java 9
Let's Learn to Talk to GC Logs in Java 9Let's Learn to Talk to GC Logs in Java 9
Let's Learn to Talk to GC Logs in Java 9Poonam Bajaj Parhar
 
淺談RESTful API認證 Token機制使用經驗分享
淺談RESTful API認證 Token機制使用經驗分享淺談RESTful API認證 Token機制使用經驗分享
淺談RESTful API認證 Token機制使用經驗分享Tun-Yu Chang
 

En vedette (18)

Microservices with Spring Boot
Microservices with Spring BootMicroservices with Spring Boot
Microservices with Spring Boot
 
Spring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanSpring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', Taiwan
 
REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfk
 
jDays - Spring Boot under the Hood
jDays - Spring Boot under the HoodjDays - Spring Boot under the Hood
jDays - Spring Boot under the Hood
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
 
Backday Xebia : Découvrez Spring Boot sur un cas pratique
Backday Xebia : Découvrez Spring Boot sur un cas pratiqueBackday Xebia : Découvrez Spring Boot sur un cas pratique
Backday Xebia : Découvrez Spring Boot sur un cas pratique
 
ParisJUG Spring Boot
ParisJUG Spring BootParisJUG Spring Boot
ParisJUG Spring Boot
 
Spring Framework Essentials
Spring Framework EssentialsSpring Framework Essentials
Spring Framework Essentials
 
Spring Framework Training Course
Spring Framework Training Course Spring Framework Training Course
Spring Framework Training Course
 
Spock
SpockSpock
Spock
 
мифы о спарке
мифы о спарке мифы о спарке
мифы о спарке
 
Spring data jee conf
Spring data jee confSpring data jee conf
Spring data jee conf
 
Event sourcing with reactor and spring statemachine
Event sourcing with reactor and spring statemachineEvent sourcing with reactor and spring statemachine
Event sourcing with reactor and spring statemachine
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
 
Java garbage collection & GC friendly coding
Java garbage collection  & GC friendly codingJava garbage collection  & GC friendly coding
Java garbage collection & GC friendly coding
 
Let's Learn to Talk to GC Logs in Java 9
Let's Learn to Talk to GC Logs in Java 9Let's Learn to Talk to GC Logs in Java 9
Let's Learn to Talk to GC Logs in Java 9
 
Spring
SpringSpring
Spring
 
淺談RESTful API認證 Token機制使用經驗分享
淺談RESTful API認證 Token機制使用經驗分享淺談RESTful API認證 Token機制使用經驗分享
淺談RESTful API認證 Token機制使用經驗分享
 

Similaire à Spring Boot

Spring Boot & WebSocket
Spring Boot & WebSocketSpring Boot & WebSocket
Spring Boot & WebSocketMing-Ying Wu
 
How to use database component using stored procedure call
How to use database component using stored procedure callHow to use database component using stored procedure call
How to use database component using stored procedure callprathyusha vadla
 
Spring boot for buidling microservices
Spring boot for buidling microservicesSpring boot for buidling microservices
Spring boot for buidling microservicesNilanjan Roy
 
Introduction to Apache Spark 2.0
Introduction to Apache Spark 2.0Introduction to Apache Spark 2.0
Introduction to Apache Spark 2.0Knoldus Inc.
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsDylan Jay
 
For each component in mule demo
For each component in mule demoFor each component in mule demo
For each component in mule demoSudha Ch
 
July 2023 CIAOPS Need to Know Webinar
July 2023 CIAOPS Need to Know WebinarJuly 2023 CIAOPS Need to Know Webinar
July 2023 CIAOPS Need to Know WebinarRobert Crane
 
Jlook web ui framework
Jlook web ui frameworkJlook web ui framework
Jlook web ui frameworkHongSeong Jeon
 
Week 4 lecture material cc (1)
Week 4 lecture material cc (1)Week 4 lecture material cc (1)
Week 4 lecture material cc (1)Ankit Gupta
 
Mastering Microservices with Kong (CodeMotion 2019)
Mastering Microservices with Kong (CodeMotion 2019)Mastering Microservices with Kong (CodeMotion 2019)
Mastering Microservices with Kong (CodeMotion 2019)Maarten Mulders
 
Maarten Mulders - Mastering Microservices with Kong - Codemotion Amsterdam 2019
Maarten Mulders - Mastering Microservices with Kong - Codemotion Amsterdam 2019Maarten Mulders - Mastering Microservices with Kong - Codemotion Amsterdam 2019
Maarten Mulders - Mastering Microservices with Kong - Codemotion Amsterdam 2019Codemotion
 
Inithub.org presentation
Inithub.org presentationInithub.org presentation
Inithub.org presentationAaron Welch
 
H2O 3 REST API Overview
H2O 3 REST API OverviewH2O 3 REST API Overview
H2O 3 REST API OverviewRaymond Peck
 
H2O 3 REST API Overview
H2O 3 REST API OverviewH2O 3 REST API Overview
H2O 3 REST API OverviewSri Ambati
 
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07Toshiaki Maki
 
Automating Google Lighthouse
Automating Google LighthouseAutomating Google Lighthouse
Automating Google LighthouseHamlet Batista
 
How to use for each component
How to use for each componentHow to use for each component
How to use for each componentmaheshtheapex
 

Similaire à Spring Boot (20)

Spring boot wednesday
Spring boot wednesdaySpring boot wednesday
Spring boot wednesday
 
Spring Boot & WebSocket
Spring Boot & WebSocketSpring Boot & WebSocket
Spring Boot & WebSocket
 
How to use database component using stored procedure call
How to use database component using stored procedure callHow to use database component using stored procedure call
How to use database component using stored procedure call
 
Spring boot for buidling microservices
Spring boot for buidling microservicesSpring boot for buidling microservices
Spring boot for buidling microservices
 
For Each Component
For Each ComponentFor Each Component
For Each Component
 
Introduction to Apache Spark 2.0
Introduction to Apache Spark 2.0Introduction to Apache Spark 2.0
Introduction to Apache Spark 2.0
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web apps
 
For each component in mule demo
For each component in mule demoFor each component in mule demo
For each component in mule demo
 
July 2023 CIAOPS Need to Know Webinar
July 2023 CIAOPS Need to Know WebinarJuly 2023 CIAOPS Need to Know Webinar
July 2023 CIAOPS Need to Know Webinar
 
Jlook web ui framework
Jlook web ui frameworkJlook web ui framework
Jlook web ui framework
 
Week 4 lecture material cc (1)
Week 4 lecture material cc (1)Week 4 lecture material cc (1)
Week 4 lecture material cc (1)
 
CloudStack S3
CloudStack S3CloudStack S3
CloudStack S3
 
Mastering Microservices with Kong (CodeMotion 2019)
Mastering Microservices with Kong (CodeMotion 2019)Mastering Microservices with Kong (CodeMotion 2019)
Mastering Microservices with Kong (CodeMotion 2019)
 
Maarten Mulders - Mastering Microservices with Kong - Codemotion Amsterdam 2019
Maarten Mulders - Mastering Microservices with Kong - Codemotion Amsterdam 2019Maarten Mulders - Mastering Microservices with Kong - Codemotion Amsterdam 2019
Maarten Mulders - Mastering Microservices with Kong - Codemotion Amsterdam 2019
 
Inithub.org presentation
Inithub.org presentationInithub.org presentation
Inithub.org presentation
 
H2O 3 REST API Overview
H2O 3 REST API OverviewH2O 3 REST API Overview
H2O 3 REST API Overview
 
H2O 3 REST API Overview
H2O 3 REST API OverviewH2O 3 REST API Overview
H2O 3 REST API Overview
 
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
 
Automating Google Lighthouse
Automating Google LighthouseAutomating Google Lighthouse
Automating Google Lighthouse
 
How to use for each component
How to use for each componentHow to use for each component
How to use for each component
 

Dernier

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Dernier (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

Spring Boot