SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
La importancia de un buen título en presentaciones
Use Groovy & Grails in your Spring Boot projects,
don't be afraid!
@fatimacasau
La importancia de un buen título en presentaciones
Fátima Casaú Pérez
Software Engineer for over 7 years ago
Java Architect & Scrum Master in Paradigma Tecnológico
Specialized in Groovy & Grails environments
Recently, Spring Boot world
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
@fatimacasau
La importancia de un buen título en presentaciones
What is Spring Boot?
What is Groovy?
Where could you use Groovy in your Spring Boot Projects?
●
Gradle
●
Tests
●
Groovy Templates
●
Anywhere?
●
GORM
●
GSP’s
Overview
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Spring Boot
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Standalone
Auto-configuration - CoC
No XML
Embedded Container and Database
Bootstrapping
Groovy!!
Run quickly - Spring Boot CLI
projects.spring.io/spring-boot
Spring Boot
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Spring Boot application in a
single tweet
DEMO...
La importancia de un buen título en presentaciones
GVM
gvmtool.net
> gvm install springboot
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
HelloWorld.groovy
1  @Controller
2  class ThisWillActuallyRun {
3     @RequestMapping("/")
4     @ResponseBody
5     String home() {
6         "Hello World!"
7     }
8  }
La importancia de un buen título en presentaciones
Groovy
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Dynamic language
Optionally typed
@TypeChecked & @CompileStatic
Java Platform
Easy & expressive syntax
Powerful features
closures, DSL, meta-programming, functional programming, scripting, ...
Groovy
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Where could you use Groovy?
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Gradle
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Powerful build tool
Support multi-project
Dependency management (based on Apache Ivy)
Support and Integration with Maven & Ivy repositories
Based on Groovy DSL
Build by convention
Ant tasks
Gradle
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Building a Spring Boot
application with Gradle
DEMO...
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
GVM
> gvm install gradle
> gradle build
> gradle tasks
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
build.gradle
1  buildscript {
2     repositories {
3         mavenCentral()
4     }
5     dependencies {
6         classpath("org.springframework.boot:spring­boot­gradle­plugin:1.2.2.RELEASE")
7     }
8  }
9  
10  apply plugin: 'groovy'
11  apply plugin: 'idea'
12  apply plugin: 'spring­boot'
13  
14  jar {
15      baseName = 'helloworld'
16      version = '0.1.0'
17  }
18  
19  repositories {
20      mavenCentral()
21  }
22  
23  dependencies {
24      compile("org.springframework.boot:spring­boot­starter­web")
25  }
La importancia de un buen título en presentaciones
Testing with Spock
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Spock framework & specification
Expressive
Groovy DSL’s
Easy to read tests
Well documented
Powerful assertions
Testing with Spock
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Testing with Spock
DEMO...
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
GoogleSpec.groovy
1 void "test Google Maps API where address is ‘Madrid’"(){
2    setup: “Google Maps API Host & Uri” 
3        def rest = new RESTClient("https://maps.googleapis.com")
4        def uri = "/maps/api/geocode/json"
5    when: “Call the API with address = ‘madrid’”
6        def result = rest.get(path: uri, query: [address:'madrid'])
7    then: “HttpStatus is OK, return a list of results and field status = OK”
8        result
9        result.status == HttpStatus.OK.value()
10        !result.data.results.isEmpty()
11        result.data.status == ‘OK’
12        result.data.toString().contains('Madrid')        
13  }
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
GoogleSpec.groovy
1 void "test Google Maps API with different values"(){
2    setup: “Google Maps API Host & Uri”
3      def rest = new RESTClient("https://maps.googleapis.com")
4      def uri = "/maps/api/geocode/json"
5    expect: “result & status when call the REST API”
6      def result = rest.get(path: uri, query: [address:address])
7      resultsIsEmpty == result.data.results.isEmpty()
8      result.data.status == status
9    where: “address takes different values with different results & status”
10      address | resultsIsEmpty | status
11      'Madrid'| false          | 'OK'
12      'abdkji'| true           | 'ZERO_RESULTS'
13      '186730'| false          | 'ZERO_RESULTS' // This fails!
14         
15  }
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
Assertion failed:  
assert      resultsIsEmpty == result.data.results.isEmpty()
        |               |    |      |     |       |
            false           false       |     |       true
                                 |      |     [...]
                                 |      |
                                 |      ...
                                 ...
docs.spockframework.org
La importancia de un buen título en presentaciones
Groovy templates
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Groovy Template Framework
Based MarkupBuilder
Groovy DSL’s
Render readable views
Replace variables easily
Groovy templates
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Groovy Templates
DEMO...
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
1 ul {
2    people.each { p ­>
3       li(p.name)
4    }
5 }
With the following model
6 def model = [people: [
7                        new Person(name:'Bob'), 
8                        new Person(name:'Alice')
9              ]]
Renders the following
10 <ul><li>Bob</li><li>Alice</li></ul>
La importancia de un buen título en presentaciones
Anywhere!
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Anywhere
Mix Java & Groovy easily
More expressive, simple & flexible than Java
Extension of JDK -> GDK
@CompileStatic @TypeChecked
Controllers, Services, Model,...
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Groovy Controller
DEMO...
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
HelloWorld.groovy
 1 
 2 @Controller
 3 class ThisWillActuallyRun {
 4    @RequestMapping("/")
 5    @ResponseBody
 6    String home() {
 7        "Hello World!"
 8    }
 9 }
@groovy.transform.CompileStatic
La importancia de un buen título en presentaciones
GORM
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Automatic mapping for entities
Dynamic finders, criterias, persistence methods, validation, mappings, constraints…
Expressive and simple code
implicit getters & setters
implicit constructors
implicit primary key
For Hibernate
For MongoDB
GORM: Grails Object Relational Mapping
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
GORM for Hibernate
DEMO...
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
Customer.groovy
1 @Entity
2 public class Customer {
3
4     String firstName;
5     String lastName;
6
7     static constraints = {
8         firstName blank:false
9         lastName blank:false
10     }
11     static mapping = {
12         firstName column: 'first_name'
13         lastName column: 'last_name'
14     }
15 }
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
1  [[firstName:"Jack", lastName:"Bauer"],
2   [firstName:"Michelle", lastName:"Dessler"]].each {
3       new Customer(it).save()
4  }
5 
6  def customers = Customer.findAll()
7 
8  customers.each {
9     println it
10 }
11 
12 def customer = Customer.get(1L)
13 
14 customers = Customer.findByLastName("Bauer")
15 customers.each {println it}
La importancia de un buen título en presentaciones
GSP's
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Groovy Server Pages is used by Grails
Large list of useful Tag Libraries
Easy to define new Tags
Not only views
Layouts & Templates
Reuse Code
GSP's: Groovy Server Pages
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
GSP's in Spring Boot
DEMO...
La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
1 <g:if test="${session.role == 'admin'}">
2    <%­­ show administrative functions ­­%>
3 </g:if>
4 <g:else>
5    <%­­ show basic functions ­­%>
6 </g:else>
___________________________________________________________________
 1  <g:each in="${[1,2,3]}" var="num">
 2     <p>Number ${num}</p>
 3  </g:each>
___________________________________________________________________
1 <g:findAll in="${books}" expr="it.author == 'Stephen King'">
2      <p>Title: ${it.title}</p>
3 </g:findAll>
___________________________________________________________________
1  <g:dateFormat format="dd­MM­yyyy" date="${new Date()}" />
___________________________________________________________________
1  <g:render template="bookTemplate" model="[book: myBook]" />
La importancia de un buen título en presentaciones
Conclusions
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
If you use Groovy…
Less code
More features
Cool Tests
Cool utilities
Why not? Please try to use Groovy!
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
One moment...
La importancia de un buen título en presentaciones
MVC Spring based Apps
Convention Over Configuration
Bootstrapping
Groovy
GORM
GSP’s ...
It's sounds like Grails!
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Why do you not use Grails?
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
La importancia de un buen título en presentaciones
Thanks!!
@fatimacasau
La importancia de un buen título en presentaciones
We are hiring!
JEE, Python, PHP, MongoDB, Cassandra, Big Data, Scala, NoSQL, AngularJS, Javascript,
iOS, Android, HTML, CSS3… and Commitment, Ping Pong, Arcade…
SEND US YOUR CV

Weitere ähnliche Inhalte

Was ist angesagt?

Feedback en continu grâce au TDD et au AsCode
Feedback en continu grâce au TDD et au AsCodeFeedback en continu grâce au TDD et au AsCode
Feedback en continu grâce au TDD et au AsCodeHaja R
 
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...François-Guillaume Ribreau
 
Geb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosperGeb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosperEsther Lozano
 
Functional IoT: Programming Language and OS
Functional IoT: Programming Language and OSFunctional IoT: Programming Language and OS
Functional IoT: Programming Language and OSKiwamu Okabe
 
Functional IoT: Introduction
Functional IoT: IntroductionFunctional IoT: Introduction
Functional IoT: IntroductionKiwamu Okabe
 
GradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggugGradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggugkyon mm
 
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...François-Guillaume Ribreau
 
Start! ATS programming
Start! ATS programmingStart! ATS programming
Start! ATS programmingKiwamu Okabe
 
SpringOne 2GX 2015 - Fullstack Groovy developer
SpringOne 2GX 2015 - Fullstack Groovy developerSpringOne 2GX 2015 - Fullstack Groovy developer
SpringOne 2GX 2015 - Fullstack Groovy developerIván López Martín
 
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021César Hernández
 
ATS Programming Tutorial
ATS Programming TutorialATS Programming Tutorial
ATS Programming TutorialKiwamu Okabe
 
Functional IoT: Hardware and Platform
Functional IoT: Hardware and PlatformFunctional IoT: Hardware and Platform
Functional IoT: Hardware and PlatformKiwamu Okabe
 
Metasepi team meeting #14: ATS programming on MCU
Metasepi team meeting #14: ATS programming on MCUMetasepi team meeting #14: ATS programming on MCU
Metasepi team meeting #14: ATS programming on MCUKiwamu Okabe
 
Static typing and proof in ATS language
Static typing and proof in ATS languageStatic typing and proof in ATS language
Static typing and proof in ATS languageKiwamu Okabe
 
Polymorphic meetup - can you teach your po to push cucumber gherkins to git
Polymorphic meetup - can you teach your po to push cucumber gherkins to gitPolymorphic meetup - can you teach your po to push cucumber gherkins to git
Polymorphic meetup - can you teach your po to push cucumber gherkins to gitArnaud Georgin
 
ATS language overview'
ATS language overview'ATS language overview'
ATS language overview'Kiwamu Okabe
 
You got database in my cloud!
You got database  in my cloud!You got database  in my cloud!
You got database in my cloud!Liz Frost
 
Managing releases effectively through git
Managing releases effectively through gitManaging releases effectively through git
Managing releases effectively through gitMohd Farid
 

Was ist angesagt? (20)

Feedback en continu grâce au TDD et au AsCode
Feedback en continu grâce au TDD et au AsCodeFeedback en continu grâce au TDD et au AsCode
Feedback en continu grâce au TDD et au AsCode
 
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
[BreizhCamp, format 15min] Construire et automatiser l'ecosystème de son Saa...
 
Graalvm with Groovy and Kotlin - Greach 2019
Graalvm with Groovy and Kotlin - Greach 2019Graalvm with Groovy and Kotlin - Greach 2019
Graalvm with Groovy and Kotlin - Greach 2019
 
Geb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosperGeb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosper
 
Functional IoT: Programming Language and OS
Functional IoT: Programming Language and OSFunctional IoT: Programming Language and OS
Functional IoT: Programming Language and OS
 
Functional IoT: Introduction
Functional IoT: IntroductionFunctional IoT: Introduction
Functional IoT: Introduction
 
GradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggugGradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggug
 
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
[BreizhCamp, format 15min] Une api rest et GraphQL sans code grâce à PostgR...
 
Start! ATS programming
Start! ATS programmingStart! ATS programming
Start! ATS programming
 
SpringOne 2GX 2015 - Fullstack Groovy developer
SpringOne 2GX 2015 - Fullstack Groovy developerSpringOne 2GX 2015 - Fullstack Groovy developer
SpringOne 2GX 2015 - Fullstack Groovy developer
 
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
 
ATS Programming Tutorial
ATS Programming TutorialATS Programming Tutorial
ATS Programming Tutorial
 
Functional IoT: Hardware and Platform
Functional IoT: Hardware and PlatformFunctional IoT: Hardware and Platform
Functional IoT: Hardware and Platform
 
Metasepi team meeting #14: ATS programming on MCU
Metasepi team meeting #14: ATS programming on MCUMetasepi team meeting #14: ATS programming on MCU
Metasepi team meeting #14: ATS programming on MCU
 
Static typing and proof in ATS language
Static typing and proof in ATS languageStatic typing and proof in ATS language
Static typing and proof in ATS language
 
Serving ML easily with FastAPI
Serving ML easily with FastAPIServing ML easily with FastAPI
Serving ML easily with FastAPI
 
Polymorphic meetup - can you teach your po to push cucumber gherkins to git
Polymorphic meetup - can you teach your po to push cucumber gherkins to gitPolymorphic meetup - can you teach your po to push cucumber gherkins to git
Polymorphic meetup - can you teach your po to push cucumber gherkins to git
 
ATS language overview'
ATS language overview'ATS language overview'
ATS language overview'
 
You got database in my cloud!
You got database  in my cloud!You got database  in my cloud!
You got database in my cloud!
 
Managing releases effectively through git
Managing releases effectively through gitManaging releases effectively through git
Managing releases effectively through git
 

Andere mochten auch

Analysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOAnalysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOParadigma Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octParadigma Digital
 
Google Analytics for Developers
Google Analytics for DevelopersGoogle Analytics for Developers
Google Analytics for DevelopersParadigma Digital
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJavaParadigma Digital
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?Paradigma Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!Paradigma Digital
 

Andere mochten auch (16)

Analysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOAnalysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEO
 
ECMAScript 6
ECMAScript 6ECMAScript 6
ECMAScript 6
 
Cómo usar google analytics
Cómo usar google analyticsCómo usar google analytics
Cómo usar google analytics
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Kafka y python
Kafka y pythonKafka y python
Kafka y python
 
Google Analytics for Developers
Google Analytics for DevelopersGoogle Analytics for Developers
Google Analytics for Developers
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJava
 
Transformación Digital
Transformación DigitalTransformación Digital
Transformación Digital
 
Python y Flink
Python y FlinkPython y Flink
Python y Flink
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
HTML5 Web Components
HTML5 Web ComponentsHTML5 Web Components
HTML5 Web Components
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
Cultura Digital Paradigma
Cultura Digital ParadigmaCultura Digital Paradigma
Cultura Digital Paradigma
 

Ähnlich wie Use Groovy&Grails in your spring boot projects

Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web AppsRatpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web AppsJames Williams
 
greach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovygreach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovyJessie Evangelista
 
How and why GraalVM is quickly becoming relevant for you (DOAG 2020)
How and why GraalVM is quickly becoming relevant for you (DOAG 2020)How and why GraalVM is quickly becoming relevant for you (DOAG 2020)
How and why GraalVM is quickly becoming relevant for you (DOAG 2020)Lucas Jellema
 
Spring-batch Groovy y Gradle
Spring-batch Groovy y GradleSpring-batch Groovy y Gradle
Spring-batch Groovy y GradleAntonio Mas
 
Java to Golang: An intro by Ryan Dawson Seldon.io
Java to Golang: An intro by Ryan Dawson Seldon.ioJava to Golang: An intro by Ryan Dawson Seldon.io
Java to Golang: An intro by Ryan Dawson Seldon.ioMauricio (Salaboy) Salatino
 
Spring Northwest Usergroup Grails Presentation
Spring Northwest Usergroup Grails PresentationSpring Northwest Usergroup Grails Presentation
Spring Northwest Usergroup Grails Presentationajevans
 
Groovy And Grails Introduction
Groovy And Grails IntroductionGroovy And Grails Introduction
Groovy And Grails IntroductionEric Weimer
 
eXo EC - Groovy Programming Language
eXo EC - Groovy Programming LanguageeXo EC - Groovy Programming Language
eXo EC - Groovy Programming LanguageHoat Le
 
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...Guillaume Laforge
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Tugdual Grall
 
Spring IO '15 - Developing microservices, Spring Boot or Grails?
Spring IO '15 - Developing microservices, Spring Boot or Grails?Spring IO '15 - Developing microservices, Spring Boot or Grails?
Spring IO '15 - Developing microservices, Spring Boot or Grails?Fátima Casaú Pérez
 
Spring boot 3g
Spring boot 3gSpring boot 3g
Spring boot 3gvasya10
 
Magic with groovy & grails
Magic with groovy & grailsMagic with groovy & grails
Magic with groovy & grailsGeorge Platon
 
Go for Mobile Games
Go for Mobile GamesGo for Mobile Games
Go for Mobile GamesTakuya Ueda
 
Develop Android/iOS app using golang
Develop Android/iOS app using golangDevelop Android/iOS app using golang
Develop Android/iOS app using golangSeongJae Park
 
Bridging the gap between designers and developers at the Guardian
Bridging the gap between designers and developers at the GuardianBridging the gap between designers and developers at the Guardian
Bridging the gap between designers and developers at the GuardianKaelig Deloumeau-Prigent
 
"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James NelsonGWTcon
 
Grails @ Java User Group Silicon Valley
Grails @ Java User Group Silicon ValleyGrails @ Java User Group Silicon Valley
Grails @ Java User Group Silicon ValleySven Haiges
 

Ähnlich wie Use Groovy&Grails in your spring boot projects (20)

Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web AppsRatpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web Apps
 
greach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovygreach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovy
 
How and why GraalVM is quickly becoming relevant for you (DOAG 2020)
How and why GraalVM is quickly becoming relevant for you (DOAG 2020)How and why GraalVM is quickly becoming relevant for you (DOAG 2020)
How and why GraalVM is quickly becoming relevant for you (DOAG 2020)
 
Groovy & Grails
Groovy & GrailsGroovy & Grails
Groovy & Grails
 
Spring-batch Groovy y Gradle
Spring-batch Groovy y GradleSpring-batch Groovy y Gradle
Spring-batch Groovy y Gradle
 
Java to Golang: An intro by Ryan Dawson Seldon.io
Java to Golang: An intro by Ryan Dawson Seldon.ioJava to Golang: An intro by Ryan Dawson Seldon.io
Java to Golang: An intro by Ryan Dawson Seldon.io
 
Spring Northwest Usergroup Grails Presentation
Spring Northwest Usergroup Grails PresentationSpring Northwest Usergroup Grails Presentation
Spring Northwest Usergroup Grails Presentation
 
Groovy And Grails Introduction
Groovy And Grails IntroductionGroovy And Grails Introduction
Groovy And Grails Introduction
 
eXo EC - Groovy Programming Language
eXo EC - Groovy Programming LanguageeXo EC - Groovy Programming Language
eXo EC - Groovy Programming Language
 
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007
 
Spring IO '15 - Developing microservices, Spring Boot or Grails?
Spring IO '15 - Developing microservices, Spring Boot or Grails?Spring IO '15 - Developing microservices, Spring Boot or Grails?
Spring IO '15 - Developing microservices, Spring Boot or Grails?
 
Spring boot 3g
Spring boot 3gSpring boot 3g
Spring boot 3g
 
Magic with groovy & grails
Magic with groovy & grailsMagic with groovy & grails
Magic with groovy & grails
 
Go for Mobile Games
Go for Mobile GamesGo for Mobile Games
Go for Mobile Games
 
Develop Android/iOS app using golang
Develop Android/iOS app using golangDevelop Android/iOS app using golang
Develop Android/iOS app using golang
 
Bridging the gap between designers and developers at the Guardian
Bridging the gap between designers and developers at the GuardianBridging the gap between designers and developers at the Guardian
Bridging the gap between designers and developers at the Guardian
 
"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson
 
Grails @ Java User Group Silicon Valley
Grails @ Java User Group Silicon ValleyGrails @ Java User Group Silicon Valley
Grails @ Java User Group Silicon Valley
 
Groovy and noteworthy
Groovy and noteworthyGroovy and noteworthy
Groovy and noteworthy
 

Mehr von Paradigma Digital

Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Paradigma Digital
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the futureParadigma Digital
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxParadigma Digital
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixParadigma Digital
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API ManagementParadigma Digital
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxParadigma Digital
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microserviciosParadigma Digital
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalParadigma Digital
 

Mehr von Paradigma Digital (14)

Ddd + ah + microservicios
Ddd + ah + microserviciosDdd + ah + microservicios
Ddd + ah + microservicios
 
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
 
Have you met Istio?
Have you met Istio?Have you met Istio?
Have you met Istio?
 
Linkerd a fondo
Linkerd a fondoLinkerd a fondo
Linkerd a fondo
 
Horneando apis
Horneando apisHorneando apis
Horneando apis
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFlux
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API Management
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microservicios
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma Digital
 
Seminario Apache Solr
Seminario Apache SolrSeminario Apache Solr
Seminario Apache Solr
 

Kürzlich hochgeladen

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Kürzlich hochgeladen (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

Use Groovy&Grails in your spring boot projects

  • 1. La importancia de un buen título en presentaciones Use Groovy & Grails in your Spring Boot projects, don't be afraid! @fatimacasau
  • 2. La importancia de un buen título en presentaciones Fátima Casaú Pérez Software Engineer for over 7 years ago Java Architect & Scrum Master in Paradigma Tecnológico Specialized in Groovy & Grails environments Recently, Spring Boot world @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! @fatimacasau
  • 3. La importancia de un buen título en presentaciones What is Spring Boot? What is Groovy? Where could you use Groovy in your Spring Boot Projects? ● Gradle ● Tests ● Groovy Templates ● Anywhere? ● GORM ● GSP’s Overview @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 4. La importancia de un buen título en presentaciones Spring Boot Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 5. La importancia de un buen título en presentaciones Standalone Auto-configuration - CoC No XML Embedded Container and Database Bootstrapping Groovy!! Run quickly - Spring Boot CLI projects.spring.io/spring-boot Spring Boot @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 6. La importancia de un buen título en presentaciones Spring Boot application in a single tweet DEMO...
  • 7. La importancia de un buen título en presentaciones GVM gvmtool.net > gvm install springboot @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 8. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! HelloWorld.groovy 1  @Controller 2  class ThisWillActuallyRun { 3     @RequestMapping("/") 4     @ResponseBody 5     String home() { 6         "Hello World!" 7     } 8  }
  • 9. La importancia de un buen título en presentaciones Groovy Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 10. La importancia de un buen título en presentaciones Dynamic language Optionally typed @TypeChecked & @CompileStatic Java Platform Easy & expressive syntax Powerful features closures, DSL, meta-programming, functional programming, scripting, ... Groovy @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 11. La importancia de un buen título en presentaciones Where could you use Groovy? Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 12. La importancia de un buen título en presentaciones Gradle Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 13. La importancia de un buen título en presentaciones Powerful build tool Support multi-project Dependency management (based on Apache Ivy) Support and Integration with Maven & Ivy repositories Based on Groovy DSL Build by convention Ant tasks Gradle @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 14. La importancia de un buen título en presentaciones Building a Spring Boot application with Gradle DEMO...
  • 15. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! GVM > gvm install gradle > gradle build > gradle tasks
  • 16. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! build.gradle 1  buildscript { 2     repositories { 3         mavenCentral() 4     } 5     dependencies { 6         classpath("org.springframework.boot:spring­boot­gradle­plugin:1.2.2.RELEASE") 7     } 8  } 9   10  apply plugin: 'groovy' 11  apply plugin: 'idea' 12  apply plugin: 'spring­boot' 13   14  jar { 15      baseName = 'helloworld' 16      version = '0.1.0' 17  } 18   19  repositories { 20      mavenCentral() 21  } 22   23  dependencies { 24      compile("org.springframework.boot:spring­boot­starter­web") 25  }
  • 17. La importancia de un buen título en presentaciones Testing with Spock Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 18. La importancia de un buen título en presentaciones Spock framework & specification Expressive Groovy DSL’s Easy to read tests Well documented Powerful assertions Testing with Spock @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 19. La importancia de un buen título en presentaciones Testing with Spock DEMO...
  • 20. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! GoogleSpec.groovy 1 void "test Google Maps API where address is ‘Madrid’"(){ 2    setup: “Google Maps API Host & Uri”  3        def rest = new RESTClient("https://maps.googleapis.com") 4        def uri = "/maps/api/geocode/json" 5    when: “Call the API with address = ‘madrid’” 6        def result = rest.get(path: uri, query: [address:'madrid']) 7    then: “HttpStatus is OK, return a list of results and field status = OK” 8        result 9        result.status == HttpStatus.OK.value() 10        !result.data.results.isEmpty() 11        result.data.status == ‘OK’ 12        result.data.toString().contains('Madrid')         13  }
  • 21. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! GoogleSpec.groovy 1 void "test Google Maps API with different values"(){ 2    setup: “Google Maps API Host & Uri” 3      def rest = new RESTClient("https://maps.googleapis.com") 4      def uri = "/maps/api/geocode/json" 5    expect: “result & status when call the REST API” 6      def result = rest.get(path: uri, query: [address:address]) 7      resultsIsEmpty == result.data.results.isEmpty() 8      result.data.status == status 9    where: “address takes different values with different results & status” 10      address | resultsIsEmpty | status 11      'Madrid'| false          | 'OK' 12      'abdkji'| true           | 'ZERO_RESULTS' 13      '186730'| false          | 'ZERO_RESULTS' // This fails! 14          15  }
  • 22. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! Assertion failed:   assert      resultsIsEmpty == result.data.results.isEmpty()         |               |    |      |     |       |             false           false       |     |       true                                  |      |     [...]                                  |      |                                  |      ...                                  ... docs.spockframework.org
  • 23. La importancia de un buen título en presentaciones Groovy templates Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 24. La importancia de un buen título en presentaciones Groovy Template Framework Based MarkupBuilder Groovy DSL’s Render readable views Replace variables easily Groovy templates @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 25. La importancia de un buen título en presentaciones Groovy Templates DEMO...
  • 26. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! 1 ul { 2    people.each { p ­> 3       li(p.name) 4    } 5 } With the following model 6 def model = [people: [ 7                        new Person(name:'Bob'),  8                        new Person(name:'Alice') 9              ]] Renders the following 10 <ul><li>Bob</li><li>Alice</li></ul>
  • 27. La importancia de un buen título en presentaciones Anywhere! Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 28. La importancia de un buen título en presentaciones Anywhere Mix Java & Groovy easily More expressive, simple & flexible than Java Extension of JDK -> GDK @CompileStatic @TypeChecked Controllers, Services, Model,... @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 29. La importancia de un buen título en presentaciones Groovy Controller DEMO...
  • 30. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! HelloWorld.groovy  1   2 @Controller  3 class ThisWillActuallyRun {  4    @RequestMapping("/")  5    @ResponseBody  6    String home() {  7        "Hello World!"  8    }  9 } @groovy.transform.CompileStatic
  • 31. La importancia de un buen título en presentaciones GORM Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 32. La importancia de un buen título en presentaciones Automatic mapping for entities Dynamic finders, criterias, persistence methods, validation, mappings, constraints… Expressive and simple code implicit getters & setters implicit constructors implicit primary key For Hibernate For MongoDB GORM: Grails Object Relational Mapping @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 33. La importancia de un buen título en presentaciones GORM for Hibernate DEMO...
  • 34. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! Customer.groovy 1 @Entity 2 public class Customer { 3 4     String firstName; 5     String lastName; 6 7     static constraints = { 8         firstName blank:false 9         lastName blank:false 10     } 11     static mapping = { 12         firstName column: 'first_name' 13         lastName column: 'last_name' 14     } 15 }
  • 35. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! 1  [[firstName:"Jack", lastName:"Bauer"], 2   [firstName:"Michelle", lastName:"Dessler"]].each { 3       new Customer(it).save() 4  } 5  6  def customers = Customer.findAll() 7  8  customers.each { 9     println it 10 } 11  12 def customer = Customer.get(1L) 13  14 customers = Customer.findByLastName("Bauer") 15 customers.each {println it}
  • 36. La importancia de un buen título en presentaciones GSP's Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 37. La importancia de un buen título en presentaciones Groovy Server Pages is used by Grails Large list of useful Tag Libraries Easy to define new Tags Not only views Layouts & Templates Reuse Code GSP's: Groovy Server Pages @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 38. La importancia de un buen título en presentaciones GSP's in Spring Boot DEMO...
  • 39. La importancia de un buen título en presentaciones @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid! 1 <g:if test="${session.role == 'admin'}"> 2    <%­­ show administrative functions ­­%> 3 </g:if> 4 <g:else> 5    <%­­ show basic functions ­­%> 6 </g:else> ___________________________________________________________________  1  <g:each in="${[1,2,3]}" var="num">  2     <p>Number ${num}</p>  3  </g:each> ___________________________________________________________________ 1 <g:findAll in="${books}" expr="it.author == 'Stephen King'"> 2      <p>Title: ${it.title}</p> 3 </g:findAll> ___________________________________________________________________ 1  <g:dateFormat format="dd­MM­yyyy" date="${new Date()}" /> ___________________________________________________________________ 1  <g:render template="bookTemplate" model="[book: myBook]" />
  • 40. La importancia de un buen título en presentaciones Conclusions Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 41. La importancia de un buen título en presentaciones If you use Groovy… Less code More features Cool Tests Cool utilities Why not? Please try to use Groovy! @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 42. La importancia de un buen título en presentaciones One moment...
  • 43. La importancia de un buen título en presentaciones MVC Spring based Apps Convention Over Configuration Bootstrapping Groovy GORM GSP’s ... It's sounds like Grails! @fatimacasau Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 44. La importancia de un buen título en presentaciones Why do you not use Grails? Use Groovy & Grails in your Spring Boot projects, don't be afraid!
  • 45. La importancia de un buen título en presentaciones Thanks!! @fatimacasau
  • 46. La importancia de un buen título en presentaciones We are hiring! JEE, Python, PHP, MongoDB, Cassandra, Big Data, Scala, NoSQL, AngularJS, Javascript, iOS, Android, HTML, CSS3… and Commitment, Ping Pong, Arcade… SEND US YOUR CV