Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Spring Boot & JHipster

Spring Boot & JHipster

Java CodeLabs
Introduction to Spring Boot & JHipster
http://eueung.github.io/java/springboot

Eueung Mulyana

January 12, 2016
Tweet

More Decks by Eueung Mulyana

Other Decks in Programming

Transcript

  1. pom.xml < ? x m l v e r s

    i o n = " 1 . 0 " e n c o d i n g = " U T F - 8 " ? > < p r o j e c t x m l n s = " h t t p : / / m a v e n . a p a c h e . o r g / P O M / 4 . 0 . 0 " x m l n s : x s i x s i : s c h e m a L o c a t i o n = " h t t p : / / m a v e n . a p a c h e . o r g / P O M / 4 . 0 . 0 h t t p : / / m a v e n . a p a c h e . o r g / x s d / m a v e n - 4 . 0 . 0 . x s d " < m o d e l V e r s i o n > 4 . 0 . 0 < / m o d e l V e r s i o n > < g r o u p I d > c o m . e x a m p l e < / g r o u p I d > < a r t i f a c t I d > m y p r o j e c t < / a r t i f a c t I d > < v e r s i o n > 0 . 0 . 1 - S N A P S H O T < / v e r s i o n > < p a r e n t > < g r o u p I d > o r g . s p r i n g f r a m e w o r k . b o o t < / g r o u p I d > < a r t i f a c t I d > s p r i n g - b o o t - s t a r t e r - p a r e n t < / a r t i f a c t I d > < v e r s i o n > 1 . 3 . 1 . R E L E A S E < / v e r s i o n > < / p a r e n t > < d e p e n d e n c i e s > < d e p e n d e n c y > < g r o u p I d > o r g . s p r i n g f r a m e w o r k . b o o t < / g r o u p I d > < a r t i f a c t I d > s p r i n g - b o o t - s t a r t e r - w e b < / a r t i f a c t I d > < / d e p e n d e n c y > < / d e p e n d e n c i e s > < / p r o j e c t > Example #1 Maven 4 / 36
  2. Example #1 src/main/java/SampleController.java i m p o r t o

    r g . s p r i n g f r a m e w o r k . b o o t . * ; i m p o r t o r g . s p r i n g f r a m e w o r k . b o o t . a u t o c o n f i g u r e . * ; i m p o r t o r g . s p r i n g f r a m e w o r k . s t e r e o t y p e . * ; i m p o r t o r g . s p r i n g f r a m e w o r k . w e b . b i n d . a n n o t a t i o n . * ; @ C o n t r o l l e r @ E n a b l e A u t o C o n f i g u r a t i o n p u b l i c c l a s s S a m p l e C o n t r o l l e r { @ R e q u e s t M a p p i n g ( " / " ) @ R e s p o n s e B o d y S t r i n g h o m e ( ) { r e t u r n " H e l l o W o r l d ! " ; } p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s E x c e p t i o n S p r i n g A p p l i c a t i o n . r u n ( S a m p l e C o n t r o l l e r . c l a s s , a r g s ) ; } } 5 / 36
  3. i m p o r t o r g .

    s p r i n g f r a m e w o r k . b o o t . * ; i m p o r t o r g . s p r i n g f r a m e w o r k . b o o t . a u t o c o n f i g u r e . * ; i m p o r t o r g . s p r i n g f r a m e w o r k . s t e r e o t y p e . * ; i m p o r t o r g . s p r i n g f r a m e w o r k . w e b . b i n d . a n n o t a t i o n . * ; @ R e s t C o n t r o l l e r @ E n a b l e A u t o C o n f i g u r a t i o n p u b l i c c l a s s E x a m p l e { @ R e q u e s t M a p p i n g ( " / " ) S t r i n g h o m e ( ) { r e t u r n " H e l l o W o r l d ! " ; } p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) t h r o w s E x c e p t i o n S p r i n g A p p l i c a t i o n . r u n ( E x a m p l e . c l a s s , a r g s ) ; } } Example #1 Alternative 6 / 36
  4. Example #1 Maven $ > m v n s p

    r i n g - b o o t : r u n 7 / 36
  5. Example #1 Gradle $ > g r a d l

    e b u i l d $ > g r a d l e b o o t R u n build.gradle b u i l d s c r i p t { e x t { s p r i n g B o o t V e r s i o n = ' 1 . 3 . 1 . R E L E A S E ' } r e p o s i t o r i e s { m a v e n C e n t r a l ( ) } d e p e n d e n c i e s { c l a s s p a t h ( " o r g . s p r i n g f r a m e w o r k . b o o t : s p r i n g - b o o t - g r a d l e - p l u } } a p p l y p l u g i n : ' j a v a ' a p p l y p l u g i n : ' s p r i n g - b o o t ' j a r { b a s e N a m e = ' d e m o ' v e r s i o n = ' 0 . 0 . 1 - S N A P S H O T ' } s o u r c e C o m p a t i b i l i t y = 1 . 8 t a r g e t C o m p a t i b i l i t y = 1 . 8 r e p o s i t o r i e s { m a v e n C e n t r a l ( ) } d e p e n d e n c i e s { c o m p i l e ( ' o r g . s p r i n g f r a m e w o r k . b o o t : s p r i n g - b o o t - s t a r t e r - w e b ' } 8 / 36
  6. src/main/java/hello/Application.java p a c k a g e h e

    l l o ; i m p o r t j a v a . u t i l . A r r a y s ; i m p o r t o r g . s p r i n g f r a m e w o r k . b o o t . S p r i n g A p p l i c a t i o n ; i m p o r t o r g . s p r i n g f r a m e w o r k . b o o t . a u t o c o n f i g u r e . S p r i n g B o o t A p p l i c a t i o n ; i m p o r t o r g . s p r i n g f r a m e w o r k . c o n t e x t . A p p l i c a t i o n C o n t e x t ; @ S p r i n g B o o t A p p l i c a t i o n p u b l i c c l a s s A p p l i c a t i o n { p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { A p p l i c a t i o n C o n t e x t c t x = S p r i n g A p p l i c a t i o n . r u n ( A p p l i c a t i o n . c l a s s , a r g s ) ; S y s t e m . o u t . p r i n t l n ( " L e t ' s i n s p e c t t h e b e a n s p r o v i d e d b y S p r i n g B o o t : " S t r i n g [ ] b e a n N a m e s = c t x . g e t B e a n D e f i n i t i o n N a m e s ( ) ; A r r a y s . s o r t ( b e a n N a m e s ) ; f o r ( S t r i n g b e a n N a m e : b e a n N a m e s ) { S y s t e m . o u t . p r i n t l n ( b e a n N a m e ) ; } } } Example #2 gs-spring-boot src/main/java/hello/HelloController.java p a c k a g e h e l l o ; i m p o r t o r g . s p r i n g f r a m e w o r k . w e b . b i n d . a n n o t a t i o n . R e s t C o n t r o l l e r ; i m p o r t o r g . s p r i n g f r a m e w o r k . w e b . b i n d . a n n o t a t i o n . R e q u e s t M a p p i n g ; @ R e s t C o n t r o l l e r p u b l i c c l a s s H e l l o C o n t r o l l e r { @ R e q u e s t M a p p i n g ( " / " ) p u b l i c S t r i n g i n d e x ( ) { r e t u r n " G r e e t i n g s f r o m S p r i n g B o o t ! " ; } } 10 / 36
  7. Example #2 Maven pom.xml < b u i l d

    > < p l u g i n s > < p l u g i n > < g r o u p I d > o r g . s p r i n g f r a m e w o r k . b o o t < / g r o u p I d > < a r t i f a c t I d > s p r i n g - b o o t - m a v e n - p l u g i n < / a r t i f a c t I d < / p l u g i n > < p l u g i n > < a r t i f a c t I d > m a v e n - f a i l s a f e - p l u g i n < / a r t i f a c t I d > < e x e c u t i o n s > < e x e c u t i o n > < g o a l s > < g o a l > i n t e g r a t i o n - t e s t < / g o a l > < g o a l > v e r i f y < / g o a l > < / g o a l s > < / e x e c u t i o n > < / e x e c u t i o n s > < / p l u g i n > < / p l u g i n s > < / b u i l d > < ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 8 " ? > < p r o j e c t x m l n s = " h t t p : / / m a v e n . a p a c h e . o r g / P O M / 4 . 0 . 0 " x m l n s : x s i x s i : s c h e m a L o c a t i o n = " h t t p : / / m a v e n . a p a c h e . o r g / P O M / 4 . 0 . 0 h t t p < m o d e l V e r s i o n > 4 . 0 . 0 < / m o d e l V e r s i o n > < g r o u p I d > o r g . s p r i n g f r a m e w o r k < / g r o u p I d > < a r t i f a c t I d > g s - s p r i n g - b o o t < / a r t i f a c t I d > < v e r s i o n > 0 . 1 . 0 < / v e r s i o n > < p a r e n t > < g r o u p I d > o r g . s p r i n g f r a m e w o r k . b o o t < / g r o u p I d > < a r t i f a c t I d > s p r i n g - b o o t - s t a r t e r - p a r e n t < / a r t i f a c t I d > < v e r s i o n > 1 . 3 . 1 . R E L E A S E < / v e r s i o n > < / p a r e n t > < d e p e n d e n c i e s > < d e p e n d e n c y > < g r o u p I d > o r g . s p r i n g f r a m e w o r k . b o o t < / g r o u p I d > < a r t i f a c t I d > s p r i n g - b o o t - s t a r t e r - w e b < / a r t i f a c t I d > < / d e p e n d e n c y > < d e p e n d e n c y > < g r o u p I d > o r g . s p r i n g f r a m e w o r k . b o o t < / g r o u p I d > < a r t i f a c t I d > s p r i n g - b o o t - s t a r t e r - a c t u a t o r < / a r t i f a c t < / d e p e n d e n c y > < d e p e n d e n c y > < g r o u p I d > o r g . s p r i n g f r a m e w o r k . b o o t < / g r o u p I d > < a r t i f a c t I d > s p r i n g - b o o t - s t a r t e r - t e s t < / a r t i f a c t I d < s c o p e > t e s t < / s c o p e > < / d e p e n d e n c y > < / d e p e n d e n c i e s > < p r o p e r t i e s > < j a v a . v e r s i o n > 1 . 8 < / j a v a . v e r s i o n > < / p r o p e r t i e s < b u i l d > . . . < / b u i l d > < / p r o j e c t > 11 / 36
  8. $ > m v n p a c k a

    g e & & j a v a - j a r t a r g e t / g s - s p r i n g - b o o t - 0 . 1 . 0 . j a r . . . L e t ' s i n s p e c t t h e b e a n s p r o v i d e d b y S p r i n g B o o t : a p p l i c a t i o n . . . v i e w C o n t r o l l e r H a n d l e r M a p p i n g $ > c u r l l o c a l h o s t : 8 0 8 0 G r e e t i n g s f r o m S p r i n g B o o t ! Example #2 Maven 12 / 36
  9. Example #2 Gradle $ > g r a d l

    e w r a p p e r $ > . / g r a d l e w b u i l d & & j a v a - j a r b u i l d / l i b s / g s - s p r i n g - b o o t - 0 . 1 b u i l d s c r i p t { r e p o s i t o r i e s { m a v e n C e n t r a l ( ) } d e p e n d e n c i e s { c l a s s p a t h ( " o r g . s p r i n g f r a m e w o r k . b o o t : s p r i n g - b o o t - g r a d l e } } a p p l y p l u g i n : ' j a v a ' a p p l y p l u g i n : ' s p r i n g - b o o t ' j a r { b a s e N a m e = ' g s - s p r i n g - b o o t ' v e r s i o n = ' 0 . 1 . 0 ' } r e p o s i t o r i e s { m a v e n C e n t r a l ( ) } s o u r c e C o m p a t i b i l i t y = 1 . 8 t a r g e t C o m p a t i b i l i t y = 1 . 8 d e p e n d e n c i e s { c o m p i l e ( " o r g . s p r i n g f r a m e w o r k . b o o t : s p r i n g - b o o t - s t a r t e r - w e b " c o m p i l e ( " o r g . s p r i n g f r a m e w o r k . b o o t : s p r i n g - b o o t - s t a r t e r - a c t u t e s t C o m p i l e ( " o r g . s p r i n g f r a m e w o r k . b o o t : s p r i n g - b o o t - s t a r t e r - } t a s k w r a p p e r ( t y p e : W r a p p e r ) { g r a d l e V e r s i o n = ' 2 . 1 0 ' } 13 / 36
  10. Example #2 Unit Tests p a c k a g

    e h e l l o ; i m p o r t s t a t i c o r g . h a m c r e s t . M a t c h e r s . e q u a l T o ; i m p o r t s t a t i c o r g . s p r i n g f r a m e w o r k . t e s t . w e b . s e r v l e t . r e s u l t . M o c k M v c R e s u l t M a t c h e r s . c o n t e n t ; i m p o r t s t a t i c o r g . s p r i n g f r a m e w o r k . t e s t . w e b . s e r v l e t . r e s u l t . M o c k M v c R e s u l t M a t c h e r s . s t a t u s ; i m p o r t o r g . j u n i t . B e f o r e ; i m p o r t o r g . j u n i t . T e s t ; i m p o r t o r g . j u n i t . r u n n e r . R u n W i t h ; i m p o r t o r g . s p r i n g f r a m e w o r k . b o o t . t e s t . S p r i n g A p p l i c a t i o n C o n f i g u r a t i o n ; i m p o r t o r g . s p r i n g f r a m e w o r k . h t t p . M e d i a T y p e ; i m p o r t o r g . s p r i n g f r a m e w o r k . m o c k . w e b . M o c k S e r v l e t C o n t e x t ; i m p o r t o r g . s p r i n g f r a m e w o r k . t e s t . c o n t e x t . j u n i t 4 . S p r i n g J U n i t 4 C l a s s R u n n e r ; i m p o r t o r g . s p r i n g f r a m e w o r k . t e s t . c o n t e x t . w e b . W e b A p p C o n f i g u r a t i o n ; i m p o r t o r g . s p r i n g f r a m e w o r k . t e s t . w e b . s e r v l e t . M o c k M v c ; i m p o r t o r g . s p r i n g f r a m e w o r k . t e s t . w e b . s e r v l e t . r e q u e s t . M o c k M v c R e q u e s t B u i l d e r s ; i m p o r t o r g . s p r i n g f r a m e w o r k . t e s t . w e b . s e r v l e t . s e t u p . M o c k M v c B u i l d e r s ; src/test/java/hello/HelloControllerTest.java @ R u n W i t h ( S p r i n g J U n i t 4 C l a s s R u n n e r . c l a s s ) @ S p r i n g A p p l i c a t i o n C o n f i g u r a t i o n ( c l a s s e s = M o c k S e r v l e t C o n t e x t . c @ W e b A p p C o n f i g u r a t i o n p u b l i c c l a s s H e l l o C o n t r o l l e r T e s t { p r i v a t e M o c k M v c m v c ; @ B e f o r e p u b l i c v o i d s e t U p ( ) t h r o w s E x c e p t i o n { m v c = M o c k M v c B u i l d e r s . s t a n d a l o n e S e t u p ( n e w H e l l o C o n t r o l l e r ( } @ T e s t p u b l i c v o i d g e t H e l l o ( ) t h r o w s E x c e p t i o n { m v c . p e r f o r m ( M o c k M v c R e q u e s t B u i l d e r s . g e t ( " / " ) . a c c e p t ( M e d i a T y . a n d E x p e c t ( s t a t u s ( ) . i s O k ( ) ) . a n d E x p e c t ( c o n t e n t ( ) . s t r i n g ( e q u a l T o ( " G r e e t i n g s f r o m S p } } 14 / 36
  11. Example #2 Integration Test p a c k a g

    e h e l l o ; i m p o r t s t a t i c o r g . h a m c r e s t . M a t c h e r s . e q u a l T o ; i m p o r t s t a t i c o r g . j u n i t . A s s e r t . a s s e r t T h a t ; i m p o r t j a v a . n e t . U R L ; i m p o r t o r g . j u n i t . B e f o r e ; i m p o r t o r g . j u n i t . T e s t ; i m p o r t o r g . j u n i t . r u n n e r . R u n W i t h ; i m p o r t o r g . s p r i n g f r a m e w o r k . b e a n s . f a c t o r y . a n n o t a t i o n . V a l u e ; i m p o r t o r g . s p r i n g f r a m e w o r k . b o o t . t e s t . I n t e g r a t i o n T e s t ; i m p o r t o r g . s p r i n g f r a m e w o r k . b o o t . t e s t . S p r i n g A p p l i c a t i o n C o n f i g u r a t i o n ; i m p o r t o r g . s p r i n g f r a m e w o r k . b o o t . t e s t . T e s t R e s t T e m p l a t e ; i m p o r t o r g . s p r i n g f r a m e w o r k . h t t p . R e s p o n s e E n t i t y ; i m p o r t o r g . s p r i n g f r a m e w o r k . t e s t . c o n t e x t . j u n i t 4 . S p r i n g J U n i t 4 C l a s s R u n n e r ; i m p o r t o r g . s p r i n g f r a m e w o r k . t e s t . c o n t e x t . w e b . W e b A p p C o n f i g u r a t i o n ; i m p o r t o r g . s p r i n g f r a m e w o r k . w e b . c l i e n t . R e s t T e m p l a t e ; src/test/java/hello/HelloControllerIT.java @ R u n W i t h ( S p r i n g J U n i t 4 C l a s s R u n n e r . c l a s s ) @ S p r i n g A p p l i c a t i o n C o n f i g u r a t i o n ( c l a s s e s = A p p l i c a t i o n . c l a s s ) @ W e b A p p C o n f i g u r a t i o n @ I n t e g r a t i o n T e s t ( { " s e r v e r . p o r t = 0 " } ) p u b l i c c l a s s H e l l o C o n t r o l l e r I T { @ V a l u e ( " $ { l o c a l . s e r v e r . p o r t } " ) p r i v a t e i n t p o r t ; p r i v a t e U R L b a s e ; p r i v a t e R e s t T e m p l a t e t e m p l a t e ; @ B e f o r e p u b l i c v o i d s e t U p ( ) t h r o w s E x c e p t i o n { t h i s . b a s e = n e w U R L ( " h t t p : / / l o c a l h o s t : " + p o r t + " / " ) ; t e m p l a t e = n e w T e s t R e s t T e m p l a t e ( ) ; } @ T e s t p u b l i c v o i d g e t H e l l o ( ) t h r o w s E x c e p t i o n { R e s p o n s e E n t i t y < S t r i n g > r e s p o n s e = t e m p l a t e . g e t F o r E n t i t y ( b a a s s e r t T h a t ( r e s p o n s e . g e t B o d y ( ) , e q u a l T o ( " G r e e t i n g s f r o m S p r } } 15 / 36
  12. Refs/Notes 1. Getting Started · Building an Application with Spring

    Boot 2. spring-guides/gs-spring-boot 16 / 36
  13. src/main/java/hello/GreetingController.java p a c k a g e h e

    l l o ; i m p o r t j a v a . u t i l . c o n c u r r e n t . a t o m i c . A t o m i c L o n g ; i m p o r t o r g . s p r i n g f r a m e w o r k . w e b . b i n d . a n n o t a t i o n . R e q u e s t M a p p i n g ; i m p o r t o r g . s p r i n g f r a m e w o r k . w e b . b i n d . a n n o t a t i o n . R e q u e s t P a r a m ; i m p o r t o r g . s p r i n g f r a m e w o r k . w e b . b i n d . a n n o t a t i o n . R e s t C o n t r o l l e r ; @ R e s t C o n t r o l l e r p u b l i c c l a s s G r e e t i n g C o n t r o l l e r { p r i v a t e s t a t i c f i n a l S t r i n g t e m p l a t e = " H e l l o , % s ! " ; p r i v a t e f i n a l A t o m i c L o n g c o u n t e r = n e w A t o m i c L o n g ( ) ; @ R e q u e s t M a p p i n g ( " / g r e e t i n g " ) p u b l i c G r e e t i n g g r e e t i n g ( @ R e q u e s t P a r a m ( v a l u e = " n a m e " , d e f a u l t V a l u e = r e t u r n n e w G r e e t i n g ( c o u n t e r . i n c r e m e n t A n d G e t ( ) , S t r i n g . f o r m a t ( t e m p l a t e , n a m e ) ) ; } } Example #3 gs-rest-service p a c k a g e h e l l o ; p u b l i c c l a s s G r e e t i n g { p r i v a t e f i n a l l o n g i d ; p r i v a t e f i n a l S t r i n g c o n t e n t ; p u b l i c G r e e t i n g ( l o n g i d , S t r i n g c o n t e n t ) { t h i s . i d = i d ; t h i s . c o n t e n t = c o n t e n t ; } p u b l i c l o n g g e t I d ( ) { r e t u r n i d ; } p u b l i c S t r i n g g e t C o n t e n t ( ) { r e t u r n c o n t e n t ; } } src/main/java/hello/Greeting.java 18 / 36
  14. Example #3 src/main/java/hello/Application.java p a c k a g e

    h e l l o ; i m p o r t o r g . s p r i n g f r a m e w o r k . b o o t . S p r i n g A p p l i c a t i o n ; i m p o r t o r g . s p r i n g f r a m e w o r k . b o o t . a u t o c o n f i g u r e . S p r i n g B o o t A p p l i c @ S p r i n g B o o t A p p l i c a t i o n p u b l i c c l a s s A p p l i c a t i o n { p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { S p r i n g A p p l i c a t i o n . r u n ( A p p l i c a t i o n . c l a s s , a r g s ) ; } } 19 / 36
  15. pom.xml < ? x m l v e r s

    i o n = " 1 . 0 " e n c o d i n g = " U T F - 8 " ? > < p r o j e c t x m l n s = " h t t p : / / m a v e n . a p a c h e . o r g / P O M / 4 . 0 . 0 " x m l n s : x s i x s i : s c h e m a L o c a t i o n = " h t t p : / / m a v e n . a p a c h e . o r g / P O M / 4 . 0 . 0 h t t p : / / m a v e n . a p a c h e . o r g / x s d / m a v e n - 4 . 0 . 0 . x s d " < m o d e l V e r s i o n > 4 . 0 . 0 < / m o d e l V e r s i o n > < g r o u p I d > o r g . s p r i n g f r a m e w o r k < / g r o u p I d > < a r t i f a c t I d > g s - r e s t - s e r v i c e < / a r t i f a c t I d > < v e r s i o n > 0 . 1 . 0 < / v e r s i o n > < p a r e n t > < g r o u p I d > o r g . s p r i n g f r a m e w o r k . b o o t < / g r o u p I d > < a r t i f a c t I d > s p r i n g - b o o t - s t a r t e r - p a r e n t < / a r t i f a c t I d > < v e r s i o n > 1 . 3 . 1 . R E L E A S E < / v e r s i o n > < / p a r e n t > < d e p e n d e n c i e s > < d e p e n d e n c y > < g r o u p I d > o r g . s p r i n g f r a m e w o r k . b o o t < / g r o u p I d > < a r t i f a c t I d > s p r i n g - b o o t - s t a r t e r - w e b < / a r t i f a c t I d > < / d e p e n d e n c y > < / d e p e n d e n c i e s > < p r o p e r t i e s > < j a v a . v e r s i o n > 1 . 8 < / j a v a . v e r s i o n > < / p r o p e r t i e s < b u i l d > . . . < / b u i l d > < r e p o s i t o r i e s > . . . < / r e p o s i t o r i e s > < p l u g i n R e p o s i t o r i e s > . . . < / p l u g i n R e p o s i t o r i e s > < / p r o j e c t > Example #3 Maven < b u i l d > < p l u g i n s > < p l u g i n > < g r o u p I d > o r g . s p r i n g f r a m e w o r k . b o o t < / g r o u p I d > < a r t i f a c t I d > s p r i n g - b o o t - m a v e n - p l u g i n < / a r t i f a c t I d < / p l u g i n > < / p l u g i n s > < / b u i l d > < r e p o s i t o r i e s > < r e p o s i t o r y > < i d > s p r i n g - r e l e a s e s < / i d > < u r l > h t t p s : / / r e p o . s p r i n g . i o / l i b s - r e l e a s e < / u r l > < / r e p o s i t o r y > < / r e p o s i t o r i e s > < p l u g i n R e p o s i t o r i e s > < p l u g i n R e p o s i t o r y > < i d > s p r i n g - r e l e a s e s < / i d > < u r l > h t t p s : / / r e p o . s p r i n g . i o / l i b s - r e l e a s e < / u r l > < / p l u g i n R e p o s i t o r y > < / p l u g i n R e p o s i t o r i e s > 20 / 36
  16. Example #3 Maven $ > m v n c l

    e a n p a c k a g e $ > j a v a - j a r t a r g e t / g s - r e s t - s e r v i c e - 0 . 1 . 0 . j a r # o r $ > m v n s p r i n g - b o o t : r u n 21 / 36
  17. build.gradle b u i l d s c r i

    p t { r e p o s i t o r i e s { m a v e n C e n t r a l ( ) } d e p e n d e n c i e s { c l a s s p a t h ( " o r g . s p r i n g f r a m e w o r k . b o o t : s p r i n g - b o o t - g r a d l e - p l u g i n : 1 . 3 . 1 . R E L E A S E " } } a p p l y p l u g i n : ' j a v a ' a p p l y p l u g i n : ' s p r i n g - b o o t ' j a r { b a s e N a m e = ' g s - r e s t - s e r v i c e ' v e r s i o n = ' 0 . 1 . 0 ' } r e p o s i t o r i e s { m a v e n C e n t r a l ( ) } s o u r c e C o m p a t i b i l i t y = 1 . 8 t a r g e t C o m p a t i b i l i t y = 1 . 8 d e p e n d e n c i e s { c o m p i l e ( " o r g . s p r i n g f r a m e w o r k . b o o t : s p r i n g - b o o t - s t a r t e r - w e b " t e s t C o m p i l e ( " j u n i t : j u n i t " ) } t a s k w r a p p e r ( t y p e : W r a p p e r ) { g r a d l e V e r s i o n = ' 2 . 1 0 ' } Example #3 Gradle $ > g r a d l e b u i l d $ > j a v a - j a r b u i l d / l i b s / g s - r e s t - s e r v i c e - 0 . 1 . 0 . j a r # o r l o c a l $ > g r a d l e w r a p p e r $ > g r a d l e w b u i l d $ > j a v a - j a r b u i l d / l i b s / g s - r e s t - s e r v i c e - 0 . 1 . 0 . j a r 22 / 36
  18. Refs/Notes 1. Getting Started · Building a RESTful Web Service

    2. spring-guides/gs-rest-service 23 / 36
  19. $ > y o j h i p s t

    e r Example #4 Scaffolding via JHipster n p m i n s t a l l - g y o n p m i n s t a l l - g b o w e r n p m i n s t a l l - g g r u n t - c l i n p m i n s t a l l - g g e n e r a t o r - j h i p s t e r 25 / 36
  20. Notes For Win7 x64 Machine Only with Stock MSVS 2013

    Community Version n p m i n s t a l l n o d e - g y p - g # p e r h a p s u n n e c e s s a r y n p m c o n f i g s e t m s v s _ v e r s i o n 2 0 1 3 - - g l o b a l n p m g e t m s v s _ v e r s i o n n p m c o n f i g l i s t s e t P Y T H O N = f : \ p r o g \ p y 2 7 \ p y t h o n . e x e s e t G Y P _ M S V S _ V E R S I O N = 2 0 1 3 nodevars { . . . ' t a r g e t _ d e f a u l t s ' : { . . . ' c o n f i g u r a t i o n s ' : { . . . ' R e l e a s e ' : { ' c o n d i t i o n s ' : | | ' t a r g e t _ a r c h = = " x 6 4 " ' , { ' m s v s _ c o n f i g u r a t i o n _ p l a t f o r m ' : ' x 6 4 ' , ' m s b u i l d _ t o o l s e t ' : ' v 1 2 0 _ x p ' } | , } } } } ~/.node-gyp/5.2.0/include/node/common.gypi Ref: NPM native builds ... @ Stack Overflow 26 / 36
  21. Example #4 Maven # i f s o m e

    t h i n g w r o n g h a p p e n s n p m i n s t a l l & & b o w e r i n s t a l l # e q u i v a l e n t f o r m v n s p r i n g - b o o t : r u n $ > m v n # l o c a l h o s t : 8 0 8 0 27 / 36
  22. References 1. Spring Boot 2. Spring Guides 3. spring-boot/spring-boot-samples 4.

    Getting Started · Building Java Projects with Maven 5. Getting Started · Building Java Projects with Gradle 6. The JHipster Mini-Book - infoq 7. The JHipster Mini-Book - Site 8. Starting a modern Java project with JHipster 9. Getting Started with JHipster, AngularJS and Paymill 35 / 36