Update on SpringBoot : Learn By Example book

I would like to let you know that I have updated/added the following sections to my SpringBoot : Learn By Example book.

springboot_learn_by_example

Additions to existing chapters:

  • Working with Multiple Databases
  • Exposing JPA entities with bi-directional references through RESTful services

In some of our applications we need to work with multiple databases. For example, we may have a primary database and a reporting database where most the application uses primary database and the application reports will be generated out of reporting database data.

The section Working with Multiple Databases explains how to configure multiple databases while using JPA in a SpringBoot application.

As SpringBoot can’t auto-configure components such as TransactionManagers, EntityManagerFactoryBeans, DataSourceInitializers for multiple databases automatically, this section will show how to turn-off auto-configuration mechanism for a specific AutoConfiguration class and provide the required configuration explicitly.

Added new chapter : Chapter 16: Deploying SpringBoot Applications.

  • Running SpringBoot applications in production mode
  • Deploying SpringBoot application on Heroku
  • Running SpringBoot application on Docker

In this new chapter I have explained how to run the SpringBoot self-contained jar in production and how to override the configuration properties configured in src/main/resources/application-*.properties.

This chapter also covers how we can deploy SpringBoot + JPA + Postgres application on Heroku platform by linking to our GitHub repository. We can enable automatic deployment so that whenever we push our changes to our Github repository the updated application will be automatically deployed on Heroku.

Finally, we will learn how to run a SpringBoot + JPA + Postgres application on Docker container. This chapter explains how to run both Postgres server and application in separate containers and link them. Then, we will also look into running the docker containers using DockerCompose instead of starting them individually.

I hope you will enjoy these new additions. 🙂

My New Book SpringBoot : Learn By Example Published Today

I am happy to announce that my new book SpringBoot : Learn By Example  got published today on Leanpub.

 

springboot_learn_by_example

What is SpringBoot?

Spring is one of the most popular Java frameworks out there to build web and enterprise application.
Spring supports variety of configuration approaches (XML, Annotations, JavaConfig etc) and properly configuring Spring applications become a bit tedious and repetitive process. To avoid these problems Spring team introduced SpringBoot to address the complexity of configuring Spring application.

SpringBoot is an opinionated approach to configure Spring based applications. SpringBoot automatically configures the application components based on various criteria like the jars you have on classpath, beans you have already configured, properties configured etc which makes it very easy to get up and running quickly.

I strongly believe that the best way to learn or teach is by using examples. This book is filled with plenty of examples explaining the concepts  in step by step manner.

Who this book is for?

If you are looking for a fast paced guide to learn how to build Spring based applications using SpringBoot this book is for you!!.

If you are a Spring developer but haven’t get your hands on SpringBoot and you feel like I know the drill, just tell me how to do it in SpringBoot way..this books is what you are looking for!!!

If you are just starting to use SpringBoot and it is working great but it all looks magical and you want to understand how SpringBoot works behind the scenes..this book will definitely be helpful to you!!

If you are a seasoned Spring developer with good grasp of Spring framework concepts and you just want a fast-paced guide to learn SpringBoot quickly..sure..this book is definitely for you!!

I see lot of people asking “What is the difference between SpringMVC and SpringBoot?”, “Should I use SpringBoot or SpringMVC for my next web application?” etc etc. See Here, Here and Here . The short answer is SpringBoot is nothing but Spring only..but it helps you a lot to build Spring based applications quickly. The next question would be How?. The best way to explain it is by creating an application WITHOUT SpringBoot and show how quickly you can develop the same application WITH SpringBoot.

This book explains how normally we build Spring application without SpringBoot and shows how we can build the same application using SpringBoot in much easier way so that you can correlate the concepts and see how SpringBoot increases developer productivity.

SpringBoot does so many things behind the scenes to automatically configure the application. This book explains how SpringBoot AutoConfiguration works behind the scenes in very detailed manner and show how we can create our own AutoConfiguration as well.

What this book covers?

The SpringBoot : Learn By Example book covers the concepts that we commonly use in our Spring applications.

  • What is SpringBoot and how to get started with SpringBoot?
  • How SpringBoot AutoConfiguration Works behind the scenes using @Conditional?
  • SpringBoot goodies like Logging, ConfigurationProperties, DeveloperTools
  • Working with Databases using JdbcTemplate, MyBatis, JOOQ, Spring Data JPA
  • Working with MongoDB NoSQL database
  • Developing Web Applications using SpringMVC
    • SpringBoot Web Starter awesomeness
    • Using Thymeleaf Views
    • File Uploading
    • Validation, I18N
  • Developing RESTful Services using SpringMVC and Spring Data REST
  • Consuming SpringBoot REST API from AngularJS application
  • Securing Web applications and REST API
  • Monitoring SpringBoot applications with SpringBoot Actuator
  • Testing SpringBoot applications

To get complete list of topics covered in this book please see the below Table of Contents.



Table of Contents:

1. Introduction to SpringBoot

  • Overview of Spring framework
  • Developing Web Application using SpringMVC and JPA
  • A Quick Taste of SpringBoot

2. Getting Started with SpringBoot

  • What is SpringBoot?
  • Our First SpringBoot Application

3. SpringBoot Behind the scenes

  • Exploring the Power of @Conditional
  • How SpringBoot AutoConfiguration Works?

4. Creating Custom SpringBoot Starter

  • Create twitter4j-spring-boot-starter

5. SpringBoot Essentials

  • Logging
  • Externalizing Configuration Properties
  • Developer Tools

6. Working with JdbcTemplate

  • Using JdbcTemplate without SpringBoot
  • Using JdbcTemplate with SpringBoot
  • Initializing Database
  • How to use other Connection Pooling libraries?

7. Working with MyBatis

  • Using SpringBoot MyBatis Starter

8. Working with JOOQ

  • Using SpringBoot JOOQ Starter

9. Working with JPA

  • Introducing Spring Data JPA
  • Using Spring Data JPA with SpringBoot

10. Working with MongoDB

  • Introducing MongoDB
  • Getting Started with MongoDB using Mongo Shell
  • Talking to MongoDB using Spring Data Mongo

11. Web Applications with SpringBoot

  • Developing Web Application using SpringBoot
  • Using Tomcat, Jetty, Undertow Embedded Servlet Containers
  • Customizing SpringMVC configuration
  • SpringBoot web application as deployable war
  • SpringBoot Supporting View Templates
  • Working with Thymeleaf Forms
  • Data Validation
  • File Uploading
  • Using ResourceBundles for Internationalization (I18N)

12. Building REST API using SpringBoot

  • Introduction to RESTful WebServices
  • REST API using SpringMVC
  • REST API using Spring Data REST
  • Consuming REST API from AngularJS

13. Securing Web Applications using SpringBoot

  • Spring Security in SpringBoot Web Application
  • Method Level Security
  • Securing REST API using SpringSecurity

14. SpringBoot Actuator

  • Exploring Actuator Endpoints
  • Customizing Actuator Endpoints
  • Securing Actuator Endpoints
  • CORS support for Actuator Endpoints
  • Monitoring and management over JMX
  • Monitoring and management using a remote shell

15. Testing SpringBoot Applications

  • Testing Support in SpringBoot
  • Testing RESTful Services using RestTemplate
  • Testing Secured Controller/Service Methods
  • Testing with Mockito

Thank You Manuel Jordan

I would like to thank Manuel Jordan (@dr_pompeii) for reviewing the book and providing feedback which helped me a lot to improve the quality of the book content.

If  you wish please do me a favour by spreading the word on Twitter, Facebook, LinkedIn etc.
I hope you will enjoy the book 🙂

Packt Publishers Initiative FREE eBook every day

Software Development is a field where learning new things continuously is very much important to keep up with the pace of technology evolution. Packt Publishers not only publishing new books everyday, now they are offering one ebook EVERYDAY for FREE http://bit.ly/1JdHmgx. This is really AWESOME!!

What are you waiting for??!!. Rush to http://bit.ly/1JdHmgx and Claim your today’s free book right now 🙂

Book Review: PrimeFaces Blueprints

PrimeFaces Blueprints is a recent publication from Packpub on PrimeFaces framework authored by Sudheer Jonna and Ramkumar Pillai. Sudheer Jonna is a well known member in the PrimeFaces community forum and is very knowledgeable on PrimeFaces and PrimeFaces Extensions.

PrimeFaces Blueprint book followed the approach of explaining the features with appropriate example applications. PrimeFaces provides more than 100 rich UI components with lot of customization options.
Instead of explaining all these components individually, the book authors explained how to use various PrimeFaces components together by developing 9 different small applications.
This book covers usage of components such as basic form field components and advanced components like DataTables, Data Exporting features, PrimeFaces Push etc with plenty of code snippets.
Also authors covered how to effectively use the Eclipse and NetBeans IDEs to get AutoCompletion for JSF/PrimeFaces and also touched upon using NetBeans PrimeFaces CRUD generator plugin.
I find this book very useful for beginners to intermediate level developers and even advanced PrimeFaces users can also learn few advanced things like how to customize PrimeFaces css styles, using Push technology etc.
I would recommend the PrimeFaces Blueprints book to anyone who wants to get started with PrimeFaces.

Book Review: Enterprise Application Development with Ext JS and Spring

I was asked to review “Enterprise Application Development with Ext JS and Spring” book by Packtpub guys and here is my review on the book. Actually now I am working on a project which is being developed using ExtJS and I thought of buying this book. But surprisingly on the very next day I was asked to review this book and gave me the ebook :-).

Book WebSite URL: http://www.packtpub.com/enterprise-application-development-with-extjs-and-spring/book

Personally I like the books which explains any technology/framework/library by taking a sample application and building the application progressively chapter by chapter. Enterprise Application Development with Ext JS and Spring book followed the same pattern and covered all levels of project development using Spring and ExtJS completely starting from Development environment setup with NetBeansIDE, Maven and Glassfish server to writing unit testing and building production ready ExtJS code using SenchaCmd.

We can find plenty of examples on Spring and ExtJS on the web, but the real challenge is stitching them together and building a real application. With this book you can build the bits and pieces (core services, UI components etc) and integrate them by following the step by step instructions as described in the book and finally create a working application.

The sample application “Task Time Tracker” is developed using Spring, JPA/EclipseLink and ExtJS. Each of these technologies are themselves huge topics and one can’t cover all these topics indetail .
But the author did a fantastic job of explaining all the concepts using to build the application as much as possible.

Highlights:

  • Clear development environments steps for setting up JDK, NetbeansIDE, Maven and Glassfish, even novice users can get it done by simply following the steps.
  • You can build the application progressively chapter by chapter with proper flow, there no jumps or deviations from sequence.
  • Very detailed explanation on creating RESTful services using SpringMVC with JSON support.
  • Author explained writing JUnit tests for repositories and services with complete code examples encouraging to follow TDD.
  • Explained ExtJS MVC philosophy and build the Task Time Tracker application UI following MVC pattern.
  • Demonstrated how to use SenchaCmd to make the application production ready.


Overall I find it as a wonderful book to have if you are developing web applications using Spring/ExtJS. I would give 5 out of 5 star rating for this book.