19
Web apps: a different angle Spring {data,data-rest} with Angular.js and Bootstrap Ioan Eugen Stan

2013 java2 days web apps - a different angle

Embed Size (px)

DESCRIPTION

Spring Data Rest web service with Angular.js client

Citation preview

Page 1: 2013 java2 days web apps - a different angle

Web apps: a different angle

Spring {data,data-rest} with

Angular.js and Bootstrap

Ioan Eugen Stan

Page 2: 2013 java2 days web apps - a different angle

About me - Ioan Eugen Stan

● founder & organizer of Bucharest JUG http://bjug.ro/● Apache comitter and PMC - Apache James & Apache

Provisionr (Incubator)● Debian user and contributor - maintainer wanabee● OpenJDK supporter

Page 3: 2013 java2 days web apps - a different angle

Why this talk?

Today’s web app needs to

● respond fast to user needs (easy to extend)

● share data with others (mash-up)

● be mobile (friendly)

● scale well

Page 4: 2013 java2 days web apps - a different angle

What are we building?REST services with Database persistance

and Angular JS client

Page 5: 2013 java2 days web apps - a different angle

Spring Data

● Spring umbrella project

● simplifies data access

● CRUD on steroids

● Declarative query methods○ magic finders

● single API for different technologies

Page 6: 2013 java2 days web apps - a different angle

Overview

http://www.infoq.com/articles/spring-data-intro

Page 7: 2013 java2 days web apps - a different angle

The “magic”

http://bearprogrammer.com/2012/03/26/simple-spring-data-example/

Page 8: 2013 java2 days web apps - a different angle

Magic Finder keywords

Page 9: 2013 java2 days web apps - a different angle

How to use Spring Data

Page 10: 2013 java2 days web apps - a different angle

Spring Data Rest

● expose Repositories as REST endpoints

● uses SpringMVC

● Servlet based

● provides HATEOS

Page 11: 2013 java2 days web apps - a different angle

HATEOAS

http://azagorneanu.blogspot.ro/2013/06/hateoas-using-spring-framework.html

Page 12: 2013 java2 days web apps - a different angle

Spring Rest Shell

● command line REST tool

● explore and test HATEOS services

● demo

Page 13: 2013 java2 days web apps - a different angle

Webjars

● Explicitly and easily manage the client-side

dependencies in JVM-based web apps

● Use JVM-based build tools (e.g. Maven,

Gradle, & SBT)

● Transitive dependencies magically appear

Page 14: 2013 java2 days web apps - a different angle

Bootstrap

Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web

development.

Build good looking responsive web apps fast

Page 15: 2013 java2 days web apps - a different angle

JavaScript library for web apps

● very clean MVC implementation

● clean data binding

● declarative UI (HTML)

● model is POJO

● encourages modularity and unit testing

Page 16: 2013 java2 days web apps - a different angle

How it works

http://devgirl.org/2013/03/21/fun-with-angularjs/

Page 17: 2013 java2 days web apps - a different angle

Jasmine Maven Plugin

Maven plugin for the JavaScript testing framework, Jasmine

● practice TDD/BDD as you write JavaScript● run frontend tests at the same time with

back-end