Posts Tagged: spring

Home » spring

OAuth 2.0 Authentication with Jira – A Spring Boot Example Application

When dealing with the specifics of authentication techniques and protocols such as OAuth the devil often is in the detail. While the OAuth 2.0 protocol generally is easy to grasp and simple to use implementation details for specific authentication providers can easily have you hit a snag fairly quickly. Documentation and examples sometimes are outdated or scattered across several - sometimes contradictory documents. Additionally, examples for the authentication provider you want to use might not have been written with your framework of ... Read more

R2DBC: Reactive Relational Database Connectivity for Java and Spring

As I mentioned in a blog post last week with Reactor and Spring WebFlux reactive programming has come to Java and the Spring platform. R2DBC is relatively new project that aims to "to bring a reactive programming API to relational data stores". While currently still considered experimental, R2DBC endeavours to introduce reactive programming to how we access relational databases (reactive relational, hence the R2 in the name). This means that instead of the traditional way of querying SQL databases imperatively with prepared statements ... Read more

Reactive Programming with Spring Boot and Spring WebFlux

Reactive Programming and its functional incarnation reactive functional programming are declarative programming paradigms that with the advent of reactive extensions for JavaScript such as RxJS have become immensely popular. The JavaScript event loop and the run-to-completion behaviour it entails as well as Node.js's non-blocking I/O calls lend themselves to an event-driven programming style that deals with asynchronous behaviour where both number and frequency of events aren't known beforehand. Reactor is a library that introduces this paradigm to Java. Spring WebFlux is a ... Read more

JSON Schema to TypeScript declarations: Keeping Client and Server Models in Sync with Spring Data REST and Typescript

With web applications a separation between client and server is commonplace nowadays: While the server (also often called back-end) deals with the underlying model, data storage and the predominant part of the business logic, the user interface and user-facing behaviour in general is realised with JavaScript, HTML and CSS on the client (also referred to as front-end), i.e. the user's browser. Frequently, frameworks such as Angular are used in order to facilitate development and make code easier to read and generally more ... Read more

JHipster: Generate And Bootstrap CRUD Apps With Spring Boot And Angular

The previous two posts in my series on helpful tools for developing CRUD applications were about tools that addressed very specific problem areas: API format specifications and code generation from those specifications in particular. This post will be both less about APIs and solving specific CRUD-related problems but about a tool that deals with CRUD app requirements in a comprehensive manner. This tool I'm talking about is called - not so slightly tongue-in-cheek - JHipster. Both inspired by tried-and-true frameworks like Ruby on ... Read more

Using Netflix Zuul As a Reverse Proxy / API Gateway

Zuul, which like the service discovery tool Eureka and the fault tolerance library Hystrix is part of Netflix' cloud orchestration stack, is a reverse proxy / API gateway. A reverse proxy conceptually works like this: A reverse proxy allows you to route requests to a single domain to multiple backing services behind that proxy. This can be conducive in situations where you want to break up your application into several loosely-coupled components that externally, that is facing the user, nonetheless act as if ... Read more

Using Spring JdbcTemplate Instead of Object-Relational Mapping

Spring JDBC and Spring JdbcTemplate in particular has become my go-to tool for accessing relational databases for quite some time now and for good reason in my opinion: The common way for using data from an RDBMS in an object-oriented context used to be and for the most part still is object-relational mapping (ORM) frameworks like the Java Persistence API (JPA) or Rails' ActiveRecord. As the name suggests these frameworks attempt to map data (and concepts) from relational, set-oriented data structures, which ... Read more

Deploying Spring Boot applications as old-fashioned WAR files

Spring Boot is an opinionated convention-over-configuration framework for creating stand-alone Spring-based Java applications. Its objective is to provide you with a preselected best practice choice of libraries (both from the Spring platform and by third parties) for a given task, e.g. building a web application that connects to a database and provides REST resources creating a scheduled batch task that exports and aggregates data from various data sources providing an API that connects to SOAP Web Services It both helps you with getting started quickly and ... Read more

Spring Batch Resources: Batch Processing, ETL And Data Conversion

ETL (extract, transform, load) processes, data processing, exporting data from one business system (ERP, CRM, accounting etc.) and importing it into another are common requirements in enterprise IT. So much so that the ability to export and import data often is the key feature of enterprise software. Spring Batch is a toolkit in the context of the widely used Spring framework that allows you to define and run batch jobs and data processing pipelines. Spring Batch provides features such as: data export / ... Read more

JHipster: A Spring / AngularJS App Generator

You're a boring, hoary Java developer but secretly always wanted to belong to that hip JavaScript-Single-Page-Application crowd? Well, with JHipster now you can! On a more serious note, JHipster is a Yeoman generator that lets you bootstrap integrated Java (for the back-end server stuff) / AngularJS (for everything front-end and UI) web apps. JHipster makes use of proven technologies such as: Grunt Bower AngularJS Maven Spring Boot Spring Web MVC The project's goal is to provide the means for easily creating a beautiful state-of-the-art HTML5 / CSS3 / JavaScript ... Read more