SlideShare une entreprise Scribd logo
Booster vos
développements
avec Spring Boot
13/01/2015
13/01/2015Paris JUG – Young Blood 2
Julien Sadaoui
Développeur Java
@juliensadaoui
juliensadaoui
13/01/2015Paris JUG – Young Blood 2
La plateforme spring
13/01/2015Paris JUG – Young Blood 2
La plateforme spring
public class BookService {
@PersistenceContext
private EntityManager em;
@Transactional
public Book save(Book book) {
return em.persist(book);
}
@Override
public List<Account> findByIsbn(String isbn) {
TypedQuery query = em.createQuery("select b from Book b where b.isbn = ?1",
Book.class);
query.setParameter(1, isbn);
return query.getResultList();
}
}
13/01/2015Paris JUG – Young Blood 2
13/01/2015Paris JUG – Young Blood 2
Pourquoi Spring Boot ?
• Point d’entrée dans la plateforme (au lieu de spring-*)
• Dépendances prêtes à l’emploi
• Auto-Configuration
• Standolone application
• Tomcat/Jetty en mode embarqué
• Fonctionnalités pour la production
• Pas de génération de code/de XML
13/01/2015Paris JUG – Young Blood 2
« Hello world » avec Spring MVC
@Controller
@EnableAutoConfiguration
public class Application {
@RequestMapping ("/")
@ResponseBody
public String helloWorld() {
return "Hello, world.";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
• Créer une simple classe qui affiche un service « Hello world »
– SpringApplication: charge un context spring à partir d’une méthode main()
– @EnableAutoConfiguration: fixe une configuration par défaut en fonction
du contenu du classpath, de nos beans, des properties, etc.
• Lancer l’application sur le port 8080
– mvn spring-boot:run
Starter POMs
13/01/2015Paris JUG – Young Blood 2
spring-boot-starter Core du composant, inclus auto-configuration, logging, etc.
spring-boot-starter-web Support pour les applications web (spring-mvc et tomcat)
spring-boot-starter-jetty Support pour le conteneur web jetty
spring-boot-starter-test Support pour les dépendances de test
spring-boot-starter-actuator Fonctionnalités pour la production (métrique, monitoring)
spring-boot-starter-data-jpa Support pour JPA, Spring Data et Hibernate
spring-boot-starter-batch Support du module spring-batch en utilisant HSQLDB
spring-boot-starter-security Support du module spring-security
• Définir des collections de dépendances pour un usage donné
– Pattern commun : spring-boot-starter-*
• Support de Maven et Gradle
Starter POMs
13/01/2015Paris JUG – Young Blood 2
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
• Utilisation de Spring Boot avec l’outil de gestion de dépendances
Maven
Tests d’intégration
13/01/2015Paris JUG – Young Blood 2
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@SpringApplicationConfiguration(classes = Application.class)
public class HomeControllerTest {
@Autowired
private WebApplicationContext wac;
@Test
public void testHome() throws Exception {
MockMvc mvc = webAppContextSetup(this.wac).build();
mvc.perform(get("/").accept(MediaType.TEXT_PLAIN))
.andExpect(status().isOk())
.andExpect(content().string("Hello, world."));
}
}
• Ajouter la dépendance spring-boot-starter-test
• Développer les tests avec spring-test
Spring Data JPA
13/01/2015Paris JUG – Young Blood 2
@Entity
public class Book implements Serializable {
@Id
private String isbn;
private String title;
private String author;
private BigDecimal price;
}
@Repository
public interface BookRepository extends JpaRepository<Book, String> {
public List<Book> findByAuthor(String author);
}
• Définir une interface Repository
• Ajouter la dépendance spring-boot-starter-data-jpa
• Utiliser hsqldb comme base de données embarquée
• Définir les annotations sur l’entité Book
Spring Boot Actuator
13/01/2015Paris JUG – Young Blood 2
• Fournit différentes fonctionnalités permettant de surveiller et gérer
votre application en production.
• Endpoints HTTP
– /beans
– /env
– /health
– /info
– /metrics
– /trace
• JMX Support
• Shell distant
13/01/2015Paris JUG – Young Blood 2
Spring Boot
Demo
13/01/2015Paris JUG – Young Blood 2
Site du projet
http://projects.spring.io/spring-boot/
http://spring.io/blog
Guide de références
http://docs.spring.io/spring-
boot/docs/current/reference/htmlsingle/
Exemples de projets
https://github.com/spring-projects/spring-
boot/tree/master/spring-boot-samples
Liens utiles
13/01/2015Paris JUG – Young Blood 2

Contenu connexe

Tendances

Ces outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsCes outils qui vous font gagner du temps
Ces outils qui vous font gagner du temps
Antoine Rey
 
Spring 3 en production
Spring 3 en productionSpring 3 en production
Spring 3 en production
Julien Dubois
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
Nathaniel Richand
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring Batch
Antoine Rey
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework spring
Antoine Rey
 
Maven
MavenMaven
Spring & SpringBatch FR
Spring & SpringBatch FRSpring & SpringBatch FR
Spring & SpringBatch FR
Marouan MOHAMED
 
Spring 3.0
Spring 3.0Spring 3.0
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
aliagadir
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring Integration
Antoine Rey
 
Spring Batch - concepts de base
Spring Batch - concepts de baseSpring Batch - concepts de base
Spring Batch - concepts de base
Spring User Group France
 
Gatekeeper par Guillaume Faure
Gatekeeper par Guillaume FaureGatekeeper par Guillaume Faure
Gatekeeper par Guillaume Faure
CocoaHeads France
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
Antoine Rey
 
Presentation Spring
Presentation SpringPresentation Spring
Presentation Spring
Nathaniel Richand
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
DNG Consulting
 
Maven
MavenMaven
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
Horacio Gonzalez
 
Introduction aux Web components (DNG Consulting)
Introduction aux Web components (DNG Consulting)Introduction aux Web components (DNG Consulting)
Introduction aux Web components (DNG Consulting)
DNG Consulting
 
Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2
teejug
 

Tendances (20)

Ces outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsCes outils qui vous font gagner du temps
Ces outils qui vous font gagner du temps
 
Spring 3 en production
Spring 3 en productionSpring 3 en production
Spring 3 en production
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring Batch
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework spring
 
Maven
MavenMaven
Maven
 
Spring & SpringBatch FR
Spring & SpringBatch FRSpring & SpringBatch FR
Spring & SpringBatch FR
 
Spring 3.0
Spring 3.0Spring 3.0
Spring 3.0
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring Integration
 
Spring Batch - concepts de base
Spring Batch - concepts de baseSpring Batch - concepts de base
Spring Batch - concepts de base
 
Gatekeeper par Guillaume Faure
Gatekeeper par Guillaume FaureGatekeeper par Guillaume Faure
Gatekeeper par Guillaume Faure
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Presentation Spring
Presentation SpringPresentation Spring
Presentation Spring
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Maven
MavenMaven
Maven
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
 
Introduction aux Web components (DNG Consulting)
Introduction aux Web components (DNG Consulting)Introduction aux Web components (DNG Consulting)
Introduction aux Web components (DNG Consulting)
 
Cours jee 1
Cours jee 1Cours jee 1
Cours jee 1
 
Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2
 

En vedette

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
Publicis Sapient Engineering
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
ENSET, Université Hassan II Casablanca
 
Spring Boot
Spring BootSpring Boot
Spring Boot
Pei-Tang Huang
 
Persistance polyglotte avec Spring Data
Persistance polyglotte avec Spring DataPersistance polyglotte avec Spring Data
Persistance polyglotte avec Spring Data
Michel Domenjoud
 
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
Jimmy Lu
 
SpringMVC
SpringMVCSpringMVC
SpringMVC
Akio Katayama
 
Skillwise-Spring framework 1
Skillwise-Spring framework 1Skillwise-Spring framework 1
Skillwise-Spring framework 1
Skillwise Group
 
Devoxx 2015, Atelier Ionic - 09/04/2015
Devoxx 2015, Atelier Ionic - 09/04/2015Devoxx 2015, Atelier Ionic - 09/04/2015
Devoxx 2015, Atelier Ionic - 09/04/2015
Loïc Knuchel
 
Design & Development of Web Applications using SpringMVC
Design & Development of Web Applications using SpringMVC Design & Development of Web Applications using SpringMVC
Design & Development of Web Applications using SpringMVC
Naresh Chintalcheru
 
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Loïc Knuchel
 
Gérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerGérer son environnement de développement avec Docker
Gérer son environnement de développement avec Docker
Julien Dubois
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Matt Raible
 
JHipster à Devoxx 2015
JHipster à Devoxx 2015JHipster à Devoxx 2015
JHipster à Devoxx 2015
Julien Dubois
 
Ionic bbl le 19 février 2015
Ionic bbl le 19 février 2015Ionic bbl le 19 février 2015
Ionic bbl le 19 février 2015
Loïc Knuchel
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
Santosh Kumar Kar
 
Soirée Heroku par Sylpheo - 16 dec 2014
Soirée Heroku par Sylpheo - 16 dec 2014Soirée Heroku par Sylpheo - 16 dec 2014
Soirée Heroku par Sylpheo - 16 dec 2014
Sylpheo
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
ENSET, Université Hassan II Casablanca
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
ENSET, Université Hassan II Casablanca
 
Requêtes multi-critères avec Cassandra
Requêtes multi-critères avec CassandraRequêtes multi-critères avec Cassandra
Requêtes multi-critères avec Cassandra
Julien Dubois
 

En vedette (20)

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
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Persistance polyglotte avec Spring Data
Persistance polyglotte avec Spring DataPersistance polyglotte avec Spring Data
Persistance polyglotte avec Spring Data
 
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
 
SpringMVC
SpringMVCSpringMVC
SpringMVC
 
Skillwise-Spring framework 1
Skillwise-Spring framework 1Skillwise-Spring framework 1
Skillwise-Spring framework 1
 
Devoxx 2015, Atelier Ionic - 09/04/2015
Devoxx 2015, Atelier Ionic - 09/04/2015Devoxx 2015, Atelier Ionic - 09/04/2015
Devoxx 2015, Atelier Ionic - 09/04/2015
 
Design & Development of Web Applications using SpringMVC
Design & Development of Web Applications using SpringMVC Design & Development of Web Applications using SpringMVC
Design & Development of Web Applications using SpringMVC
 
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
 
Gérer son environnement de développement avec Docker
Gérer son environnement de développement avec DockerGérer son environnement de développement avec Docker
Gérer son environnement de développement avec Docker
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
 
JHipster à Devoxx 2015
JHipster à Devoxx 2015JHipster à Devoxx 2015
JHipster à Devoxx 2015
 
Ionic bbl le 19 février 2015
Ionic bbl le 19 février 2015Ionic bbl le 19 février 2015
Ionic bbl le 19 février 2015
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 
Soirée Heroku par Sylpheo - 16 dec 2014
Soirée Heroku par Sylpheo - 16 dec 2014Soirée Heroku par Sylpheo - 16 dec 2014
Soirée Heroku par Sylpheo - 16 dec 2014
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
 
Requêtes multi-critères avec Cassandra
Requêtes multi-critères avec CassandraRequêtes multi-critères avec Cassandra
Requêtes multi-critères avec Cassandra
 

Similaire à ParisJUG Spring Boot

spring-api-rest.pdf
spring-api-rest.pdfspring-api-rest.pdf
spring-api-rest.pdf
Jaouad Assabbour
 
Paris JUG Spring Batch
Paris JUG Spring BatchParis JUG Spring Batch
Paris JUG Spring Batch
Olivier BAZOUD
 
#9 Deploiement Complexe
#9 Deploiement Complexe#9 Deploiement Complexe
#9 Deploiement Complexe
Guillaume Sauthier
 
Spring Batch Avance
Spring Batch AvanceSpring Batch Avance
Spring Batch Avance
Olivier BAZOUD
 
Spring Boot RestApi.pptx
Spring Boot RestApi.pptxSpring Boot RestApi.pptx
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
Xavier NOPRE
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
Syrine Ben aziza
 
Tests de performances d'une application Java EE
Tests de performances d'une application Java EETests de performances d'une application Java EE
Tests de performances d'une application Java EE
Antonio Gomes Rodrigues
 
cours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdfcours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdf
ssuser192642
 
Présentation JSS2015 - Le Query Store de SQL Server 2016
Présentation JSS2015 - Le Query Store de SQL Server 2016Présentation JSS2015 - Le Query Store de SQL Server 2016
Présentation JSS2015 - Le Query Store de SQL Server 2016
Guillaume Nocent
 
[JSS2015] Query Store
[JSS2015] Query Store[JSS2015] Query Store
[JSS2015] Query Store
GUSS
 
Tests Dinterface SWT
Tests Dinterface SWTTests Dinterface SWT
Tests Dinterface SWT
Eric Le Merdy
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
seydou4devops
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
badrfathallah2
 
Développez et déployez votre application Java dans Azure
Développez et déployez votre application Java dans AzureDéveloppez et déployez votre application Java dans Azure
Développez et déployez votre application Java dans Azure
Microsoft
 
Déploiement d'une application Java EE dans Azure
Déploiement d'une application Java EE dans AzureDéploiement d'une application Java EE dans Azure
Déploiement d'une application Java EE dans Azure
José Paumard
 

Similaire à ParisJUG Spring Boot (20)

spring-api-rest.pdf
spring-api-rest.pdfspring-api-rest.pdf
spring-api-rest.pdf
 
Paris JUG Spring Batch
Paris JUG Spring BatchParis JUG Spring Batch
Paris JUG Spring Batch
 
Spring Batch ParisJUG
Spring Batch ParisJUG Spring Batch ParisJUG
Spring Batch ParisJUG
 
#9 Deploiement Complexe
#9 Deploiement Complexe#9 Deploiement Complexe
#9 Deploiement Complexe
 
Spring Batch Avance
Spring Batch AvanceSpring Batch Avance
Spring Batch Avance
 
Spring Boot RestApi.pptx
Spring Boot RestApi.pptxSpring Boot RestApi.pptx
Spring Boot RestApi.pptx
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
Gradle_ToursJUG
Gradle_ToursJUGGradle_ToursJUG
Gradle_ToursJUG
 
gradle_nantesjug
gradle_nantesjuggradle_nantesjug
gradle_nantesjug
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
 
Gradle_ToulouseJUG
Gradle_ToulouseJUGGradle_ToulouseJUG
Gradle_ToulouseJUG
 
Tests de performances d'une application Java EE
Tests de performances d'une application Java EETests de performances d'une application Java EE
Tests de performances d'une application Java EE
 
cours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdfcours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdf
 
Présentation JSS2015 - Le Query Store de SQL Server 2016
Présentation JSS2015 - Le Query Store de SQL Server 2016Présentation JSS2015 - Le Query Store de SQL Server 2016
Présentation JSS2015 - Le Query Store de SQL Server 2016
 
[JSS2015] Query Store
[JSS2015] Query Store[JSS2015] Query Store
[JSS2015] Query Store
 
Tests Dinterface SWT
Tests Dinterface SWTTests Dinterface SWT
Tests Dinterface SWT
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
Développez et déployez votre application Java dans Azure
Développez et déployez votre application Java dans AzureDéveloppez et déployez votre application Java dans Azure
Développez et déployez votre application Java dans Azure
 
Déploiement d'une application Java EE dans Azure
Déploiement d'une application Java EE dans AzureDéploiement d'une application Java EE dans Azure
Déploiement d'une application Java EE dans Azure
 

ParisJUG Spring Boot

  • 2. 13/01/2015Paris JUG – Young Blood 2 Julien Sadaoui Développeur Java @juliensadaoui juliensadaoui
  • 3. 13/01/2015Paris JUG – Young Blood 2 La plateforme spring
  • 4. 13/01/2015Paris JUG – Young Blood 2 La plateforme spring public class BookService { @PersistenceContext private EntityManager em; @Transactional public Book save(Book book) { return em.persist(book); } @Override public List<Account> findByIsbn(String isbn) { TypedQuery query = em.createQuery("select b from Book b where b.isbn = ?1", Book.class); query.setParameter(1, isbn); return query.getResultList(); } }
  • 5. 13/01/2015Paris JUG – Young Blood 2
  • 6. 13/01/2015Paris JUG – Young Blood 2 Pourquoi Spring Boot ? • Point d’entrée dans la plateforme (au lieu de spring-*) • Dépendances prêtes à l’emploi • Auto-Configuration • Standolone application • Tomcat/Jetty en mode embarqué • Fonctionnalités pour la production • Pas de génération de code/de XML
  • 7. 13/01/2015Paris JUG – Young Blood 2 « Hello world » avec Spring MVC @Controller @EnableAutoConfiguration public class Application { @RequestMapping ("/") @ResponseBody public String helloWorld() { return "Hello, world."; } public static void main(String[] args) { SpringApplication.run(Application.class, args); } } • Créer une simple classe qui affiche un service « Hello world » – SpringApplication: charge un context spring à partir d’une méthode main() – @EnableAutoConfiguration: fixe une configuration par défaut en fonction du contenu du classpath, de nos beans, des properties, etc. • Lancer l’application sur le port 8080 – mvn spring-boot:run
  • 8. Starter POMs 13/01/2015Paris JUG – Young Blood 2 spring-boot-starter Core du composant, inclus auto-configuration, logging, etc. spring-boot-starter-web Support pour les applications web (spring-mvc et tomcat) spring-boot-starter-jetty Support pour le conteneur web jetty spring-boot-starter-test Support pour les dépendances de test spring-boot-starter-actuator Fonctionnalités pour la production (métrique, monitoring) spring-boot-starter-data-jpa Support pour JPA, Spring Data et Hibernate spring-boot-starter-batch Support du module spring-batch en utilisant HSQLDB spring-boot-starter-security Support du module spring-security • Définir des collections de dépendances pour un usage donné – Pattern commun : spring-boot-starter-* • Support de Maven et Gradle
  • 9. Starter POMs 13/01/2015Paris JUG – Young Blood 2 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> • Utilisation de Spring Boot avec l’outil de gestion de dépendances Maven
  • 10. Tests d’intégration 13/01/2015Paris JUG – Young Blood 2 @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @SpringApplicationConfiguration(classes = Application.class) public class HomeControllerTest { @Autowired private WebApplicationContext wac; @Test public void testHome() throws Exception { MockMvc mvc = webAppContextSetup(this.wac).build(); mvc.perform(get("/").accept(MediaType.TEXT_PLAIN)) .andExpect(status().isOk()) .andExpect(content().string("Hello, world.")); } } • Ajouter la dépendance spring-boot-starter-test • Développer les tests avec spring-test
  • 11. Spring Data JPA 13/01/2015Paris JUG – Young Blood 2 @Entity public class Book implements Serializable { @Id private String isbn; private String title; private String author; private BigDecimal price; } @Repository public interface BookRepository extends JpaRepository<Book, String> { public List<Book> findByAuthor(String author); } • Définir une interface Repository • Ajouter la dépendance spring-boot-starter-data-jpa • Utiliser hsqldb comme base de données embarquée • Définir les annotations sur l’entité Book
  • 12. Spring Boot Actuator 13/01/2015Paris JUG – Young Blood 2 • Fournit différentes fonctionnalités permettant de surveiller et gérer votre application en production. • Endpoints HTTP – /beans – /env – /health – /info – /metrics – /trace • JMX Support • Shell distant
  • 13. 13/01/2015Paris JUG – Young Blood 2 Spring Boot Demo
  • 14. 13/01/2015Paris JUG – Young Blood 2 Site du projet http://projects.spring.io/spring-boot/ http://spring.io/blog Guide de références http://docs.spring.io/spring- boot/docs/current/reference/htmlsingle/ Exemples de projets https://github.com/spring-projects/spring- boot/tree/master/spring-boot-samples Liens utiles
  • 15. 13/01/2015Paris JUG – Young Blood 2