Maven Overview

Maven is primarily a build automation tool used for building mostly Java projects and is maintained by the Apache Software Foundation. Maven, a Yiddish word meaning accumulator of knowledge, was originally started in Jakarta Turbine project.

Maven’s objectives (as per are:

  1. Making the build process easy

  2. Providing a uniform build system

  3. Providing quality project information

Unit Testing Concurrency Code in Spring

Will list our common issues, tips and tricks for unit testing concurrency code written in Spring. You will usually be using a unit testing framework such as JUnit or TestNG.

Introduction to Caching Support in Spring Framework

Spring Framework provides support for transparently adding caching into an existing Spring application, with minimal impact on the code, similar to the transaction support. Spring also makes good use of annotations. This note is a summary of Spring’s documentation (see reference) on Caching, for quick reading and reference.

Introduction to Caching

A cache is a hardware or software component that stores data so future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation, or the duplicate of data stored elsewhere. A cache hit occurs when the requested data can be found in a cache, while a cache miss occurs when it cannot. Cache hits are served by reading data from the cache, which is faster than recomputing a result or reading from a slower data store. (Ref=Wikipedia)

Spring Boot Developer Tools and App Restart

The devtools module adds tools that can make the application development easier. This includes automatically applying sensible development-time configuration for features such as caching, auto restarting after changes etc. To include devtools support, we need to add spring-boot-devtools dependency to the build file.

A Quick Comparison of YAML with Properties File

YAML is a human friendly data serialization standard, which is mainly made for configuration files. YAML stands for YAML Ain't Markup Language. YAML can be used with many programming languages.

Externalized Configuration with Spring Boot

For externalized configurations, Spring Boot supports file formats such as YAML and the .properties file.

While properties file works with @PropertySource annotation, YAML does not. While we can configure more than one Spring profiles per properties file, we can have any with YAML files.



Spring Boot Auto Configuration Overview


  1. EnableAutoConfiguration annotation attempt to guess and configure beans that you are likely to need.

  2. Auto-configuration classes are usually applied based on the presence or absence of, files or libraries in your classpath, beans you have defined, and properties.  

  3. Auto-configuration is always applied after user-defined beans have been registered.

[Theory+Example] Spring Boot Command Line Runner

If you need to run some specific code once the SpringApplication has started, you can implement the ApplicationRunner or CommandLineRunner interfaces. Both interfaces work in the same way and offer a single run method which will be called just before…​) completes.


The CommandLineRunner interfaces provides access to application arguments as a simple string array, whereas the ApplicationRunner uses the ApplicationArguments interface.


Logging with Spring Boot

Spring Boot has no mandatory logging dependency, except for the Commons Logging API, of which there are many implementations to choose from.

Spring Boot attempts to configure logging based on the content of the classpath if you use spring-boot-starter-logging. Other starters such as spring-boot-starter-web depends transitively on the logging starter, and hence it is automatically added if they are being used.



Search the Web

Custom Search

Searches whole web. Use the search in the right sidebar to search only within!!!