Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Ready! Steady! SpringBoot!

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 17 Publicité

Ready! Steady! SpringBoot!

Télécharger pour lire hors ligne

During this talk, speaker told about the architecture of web applications based on SpringBoot. The main idea of his presentation was to show that SpringBoot and some other Spring technologies can be efficiently used to improve project performance.

This presentation by Mykhailo Brodskyi (Senior Software Engineer, Consultant at GlobalLogic Kharkiv), was delivered at GlobalLogic Kharkiv Java Conference 2018 on June 10, 2018.

During this talk, speaker told about the architecture of web applications based on SpringBoot. The main idea of his presentation was to show that SpringBoot and some other Spring technologies can be efficiently used to improve project performance.

This presentation by Mykhailo Brodskyi (Senior Software Engineer, Consultant at GlobalLogic Kharkiv), was delivered at GlobalLogic Kharkiv Java Conference 2018 on June 10, 2018.

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Similaire à Ready! Steady! SpringBoot! (20)

Publicité

Plus par GlobalLogic Ukraine (20)

Plus récents (20)

Publicité

Ready! Steady! SpringBoot!

  1. 1. Ready! Steady! Spring Boot! Maksym Fastovets Senior Software Engineer, Consultant
  2. 2. Agenda 1. What is Spring Boot; 2. Project domain; 3. Spring Boot application modules structure; 4. Flyway and Spring Data; 5. Spring MVC, Swagger and RESTful API. 2
  3. 3. What is Spring Boot? 3
  4. 4. Features - Create stand-alone Spring apps - Embed Tomcat, Jetty or Undertow directly - Provide opinionated 'starter' POMs to simplify your Maven config - Automatically configure Spring whenever possible - Provide metrics, health checks features and externalized configuration - Absolutely no code generation and no requirement for XML configuration 4
  5. 5. Project domain Simple web application for tracking users activities in scope of some projects. No UI, only RESTful API exposed 5
  6. 6. Project structure Root project is named timetracker which includes two gradle modules: - timetracker.db - timetracker.main 6
  7. 7. Application.properties As project is rather simple, application.properties contain only datasource and JPA settings. 7
  8. 8. Database In-memory H2 database is used for simplicity as it doesn’t require any installations, dependency in gradle build file is just enough. H2 also provides web console (its default URL is /h2-console) which allows to manipulate data (query, update, insert, delete, etc.) 8
  9. 9. Database version control with Flyway I used pure sql flyway migration files. They by default should be placed in the /resources/db/migration folder of the timetracker.db module. 9
  10. 10. Database structure 10
  11. 11. Spring Data and JPA entities - Spring Data abstracts the way data is accessed in the code from external data sources and allows to concentrate on manipulating the POJOs (entities) rather then working with low level classes such as Session, EntityManager, etc. - CrudRepository<T, ID> and its magic syntax. - JPA Entities. 11
  12. 12. DbModuleConfig 12
  13. 13. timetracker.main module structure Сonfigurations StaticResourceConfiguration; SwaggerConfiguration; TimeTrackerApplication. Controllers UserController; ProjectController; WorkController. Services UserService; WorkService. 13
  14. 14. Project’s RESTful API 14
  15. 15. Example 15
  16. 16. Questions 16
  17. 17. Thank you! maksym.fastovets@globallogic.com

×