- December 13, 2017
What makes a modern web application?
Exposes REST JSON web services, Embraces HTML 5, Single page web application, Stateless so that you can scale horizontally, Uses Oauth, Embraces Polyglot Persistence, Responsive, Cloud aware, Social.
Java EE 7 with JDK7 -JPA, EJB, CDI, JAX-RS, SLF4J, MySQL, NoSQL, AngularJS, Twitter Bootstrap, WildFly on OpenShift Spring Boot, REST JSON web services.
Java EE 7
Standards based development, Portability across application servers, Lightweight deployment, Easy to get started, Java EE API provides a good starting point-CDI, JAX-RS, JPA are at the heart of any modern web application.
Describes the management of relational data in applications. JPA implementations provide ORM framework JPA provides an API to perform CRUD and find operations on entities. An entity is a POJO, whose state is mapped to a relational database table. JPA also provides a query language to make queries against entities stored in relational database. The new features in JPA 2.1 Java EE 7 are Schema generation using standard properties, Use @lndex to define additional indexes in schema generation, New EntityGraph API available in EntityManager.
Java API for RESTful web services, Annotation driven API that aims to help developers build RESTful webservices in Java, POJO based Resource classes, HTTP centric — Maps HTTP requests to Java method invocations. The new features in Java EE 7 are Client API, Asynchronous JAX-RS services, Filters and interceptors
REST – Web Services
What is RESTful Web Services ?
REST ful web services are web services which are REST based, Stateless & cacheable, uses URI & HTTP methods, Quiet light, extensible and simple services, The reason behind the popularity of REST is that the applications we use are browser-based nowadays and top it all, REST is built on HTTP, Main idea: Providing the communication between client and server over HTTP protocol rather than Other complex architectures like SOAP and RPC etc,
What is OAuth?
A simple open standard for secure API authentication. Salesforce supports OAuth versions 1.0A and 2.0 authentication flows. Types Of OAuth 2.0 authetication flows OAuth 2.0 Web server—The Web server authentication flow is used by applications that are hosted on a secure server. A critical aspect Of the Web server flow is that the server must be able to protect the consumer secret.
OAuth 2.0 user-agent—The user-agent authentication flow is used by client applications (consumers) residing in the user’s device. These consumers cannot keep the client secret confidential.
OAuth 2.0 username and password—The username-password authentication flow can be used to authenticate when the consumer already has the user’s credentials.
What is Spring Security a powerful and highly customizable authentication and access-control framework, build on top of Spring Framework, de-facto standard for securing Spring-based applications
Spring Component Model Themes are Powerful annotated component model, stereotypes, configuration classes, composable annotations, Spring Expression Language and its use in value injection, Comprehensive REST support and other Spring @MVC additions, Support for async MVC processing, Spring MVC interacting with Servlet 3.0 async callbacks, Declarative validation and formatting, integration with JSR-303 Bean Validation, Declarative scheduling, trigger abstraction, cron support, Declarative caching,
Spring Framework 4.0
First-class support for Java 8 language and API features supports are lambda expressions, method references and JSR-310 Date and Time, etc
A generalized model for conditional bean definitions are it is more flexible and more dynamic variant of bean definition profiles First-class support for Groovy (in particular: Groovy 2), Groovy-based bean definitions (a.k.a. Grails Bean Builder), runtime support for regular Spring beans implemented in Groovy A WebSocket endpoint model along the lines of Spring MVC and deploying Spring-defined endpoint beans to a WebSocket runtime
Spring 4.0: Upcoming Enterprise Specifications are JMS 2.0 – delivery delay, JMS 2.0 createSession variants etc, JTA 1.2 -javax.transaction.Transactional annotation, 1 – unsynchronized persistence contexts, Bean Validation 1.1 – method parameter and return value constraints and JSR-236 Concurrency Utilities, and EE-compliant TaskScheduler backend with trigger support JSR-107 JCache – standard CacheManager backend, standard caching annotations
Abstraction or facade on top of different logging API
SLF4J with Logback provides a faster logging implementation SLF4J has great pattern substitution support.
AngularJS Extends HTML to add dynamic nature so that we can build modern web applications with ease. It uses Declarative approach and Eliminates DOM manipulation by two way data binding. Ideal for building single page web applications
MongoDB ia an Open Source NoSQL document datastore with JSON style documents,Schema-less — Each document is heterogeneous, and may have completely unique structure compared to other documents, Fast and horizontally scalable, Rich query language, Rich documents, Easy to get running and Geospatial indexing