What does @EnableAutoConfiguration do? What about @SpringBootApplication?

@EnableAutoConfiguration annotation on a Spring Java configuration class
– Causes Spring Boot to automatically creates beans you need.
– Usually based on classpath contents, can easily override.
public class MyAppConfig {
public static void main(String[] args) {
SpringApplication.run(MyAppConfig.class, args);

@SpringBootApplication was available from Spring Boot 1.2
It is very common to use @EnableAutoConfiguration, @Configuration, and @ComponentScan together.
public class MyAppConfig {


With @SpringBootApplication annotation
public class MyAppConfig {



What are the advantages and disadvantages of using Spring Boot?


  • It is very easy to develop Spring Based applications with Java or Groovy.
  • It reduces a lot of development time and increases productivity.
  • It avoids writing of boilerplate Code, Annotations and XML Configuration.
  • It is very easy to integrate Spring Boot Application with its Spring Ecosystem like Spring JDBC, Spring ORM, Spring Data, Spring Security etc.
  • It follows “Opinionated Defaults Configuration” Approach to reduce Developer effort
  • It provides Embedded HTTP servers like Tomcat, Jetty etc. to develop and test our web applications very easily.
  • It provides CLI (Command Line Interface) tool to develop and test Spring Boot (Java or Groovy) Applications from command prompt very easily and quickly.
  • It provides lots of plugins to develop and test Spring Boot Applications and it uses Build Tools like Maven and Gradle
  • It provides lots of plugins to work with embedded and in-memory Databases very easily.


It is very tough and time consuming process to convert existing or legacy Spring Framework projects into Spring Boot Applications. It is applicable only for brand new/Greenfield Spring Projects.


What is a namespace in Kubernetes?

Namespaces are intended for use in environments with many users spread across multiple teams, or projects. Namespaces are a way to divide cluster resources between multiple uses (via resource quota). In future versions of Kubernetes, objects in the same namespace will have the same access control policies by default.



Why Facebook’s React Native Is the Future of Hybrid App Development

In the world of mobile application development, a developer always looks for smaller development cycles, quicker time to deployment, and better app performance. With two operating systems dominating the landscape, businesses creating mobile applications often face a compromise: apps that provide a better user experience, or apps that are faster to develop and run on more platforms and devices?

At the crossways of user experience and easiness of development of the hybrid mobile app—an app built with technology and many developers already know (like JavaScript, or HTML5 and CSS) that are wrapped in a container allowing it to run natively on a device.

Hybrid app frameworks have come a long way to link the gap between the performance of a native app and the ease of development of a web app. On the leading edge of this technology is Facebook’s React Native user interface (UI) design framework. Have a look at this article and know how this impressive JavaScript library is upping the bet for hybrid mobile apps.


Vanished are the WebView components of other hybrid mobile apps. This is possible because React Native’s building blocks are reusable “native components” that compile directly to native. Components which the developer can use in iOS or Android and have counterparts right in React.

This component-based structure also allows the developer to build apps with a more agile, web-style approach to development than typical hybrid frameworks. The application will have the speed, appearance, and functionality of a native mobile application.


This is a massive bonus for businesses that want to augment an existing app but do not want to refurbish it. Incorporate React Native components into the developer’s app’s code or, if the developer’s existing hybrid app was built with Cordova and Ionic, reuse that Cordova-based code easily with a plugin.


React Native is focused specially on building a mobile UI. As compared with JavaScript frameworks such as AngularJS or MeteorJS, React Native is UI-focused, making it more like a JavaScript library than a framework. The resulting UI is highly responsive and feels thanks to asynchronous JavaScript interactions with the native environment. This means the application will have quicker load times than a typical hybrid app, and a smoother feel.


Whereas native app development is usually associated with inefficiency, less developer productivity, and slower time to deployment, React Native is all about bringing the speed and agility of web app development to the hybrid space with native results.

Under React Native’s cowl is Facebook’s popular ReactJS UI library for web applications. React Native brings all of ReactJS’s better app performance, DOM abstraction, and simplified programming methods to hybrid mobile development.


Initially, Facebook only developed React Native to support iOS. However with its latest support of the Android operating system, the library can now render mobile UIs for both the platforms. Facebook used React Native to build its own Ads Manager app, creating both an iOS and an Android version. Both versions were built by the same team of developers.

Facebook also made React Native open-source, with the idea that compatibility with other platforms such as Windows or tvOS could be worked on by the development community.


Top Things Every React.Js Beginner Should Know

React.js is presently the most hyped front-end framework(view). In this article we are trying to list out things every React.js beginner should know. We have pointed out top five reasons why React.js can be confusing. So let us get started.


Let us get the basics out of the way. React is not another MVC framework, or any other kind of framework. It is just a library for rendering your views. If you are coming from the MVC world, the developer need to realise that React is just the ‘V’, part of the equation, and they need to look elsewhere when it comes to defining their ‘M’ and ‘C’, otherwise the developer is going to end up with some really disgusting React code.


React is meant at being developer friendly. It uses an XML-like syntax called JSX. It will appear like normal HTML, but has few catches. Class is a reserved keyword so the developer has to use className, this means the developer cannot use their HTML code directly, they have to do a bunch of replacements.

## Normal HTML

<div class=”row” … >

## Syntax for React

<div className=”row” …>

There are other catches the developer need to remember, they cannot use independent HTML tags such as <br> and <input>, it is required to close them like <br/> and <input />


Javascript is developing very fast with the advent of these new front-end frameworks. The current syntax is called as ES6, which is a bit different than the older version. This can be very confusing if the developer does not know this. In your quest to find something you may find resources which can be following the older syntax or the newer one.

## Older Syntax

var aComponent = React.createClass({

function: render() { … }


## Newer ES6 Syntax class ComponentB extends React.Component

{ render() { … } }


Dynamic apps must need to pass data around the system. In React, data movement happens mostly among components and external services that provide the original data (eg HTTP, localStorage).

Props are immutable and dumb which means they can only be passed from parent components down and it cannot be changed. This poses a challenge because, modern applications do not rely on having all of its states ready on page load. Ajax or Events could happen and when data returns, someone needs to be responsible for making updates. This is where React states comes in.


What if we had a button (or more) in a child component that incremented and decremented an integer managed in a parent component. What do we do?

React component interaction comes in two forms i.e., flow of data from parent to child component and flow of data from child to parent.

To achieve child to parent data flow in react, we use handlers passed in to the child component through the parent component as props. The parent knows that such activity could occur in its child so it sets up a handler when the activity occurs.


Responsive Web Design Vs Mobile Apps

The continuous advancement of smart phones, regular release of newer mobile OS versions, availability of a vast variety of mobile applications from different application stores and high speed internet connections have totally transformed the way consumers use their mobile devices.

This article explains you the difference between Mobile Web App and Responsive Web Design, and provides a framework for resolving some of the key questions decision makers have. These include what factors to consider when choosing between Responsive Web Design and Mobile Web App, and what type of industry Responsive Web Design is most suitable for.

Responsive Web Design Vs Mobile Apps


There are key differences between responsive web design and mobile apps.

Responsive mobile design generally means that the site is designed specifically for mobile use. It will often be kept under a different URL and will feature subsets of the user’s desktop content that are appropriate for mobile viewing. These pages will adapt to whatever screen size the user desires.

On the other hand, Mobile apps are specific applications tailored to each Operating System that features unique designs and codebases. In our mobile-crazed world, native mobile apps are becoming a popular choice for many sites that want to offer users a top-shelf experience.


Creating mobile responsive mobile websites is the older, and perhaps less fashionable, of the two options. In most cases, the profits of responsive web design encompass two critical areas:

Time: Launching a mobile site is a quicker process than designing an application. Nearly all businesses these days need mobile sites to stay competitive, so creating a responsive mobile experience is the least that developers can do.

Cost: Responsive web design is comparatively cheap when measured against the costs of designing a native mobile app from the ground up.


Mobile apps take time to create and are more expensive, but they feature several benefits in other areas:

Functionality: Apps feature greater functionality than mobile-oriented sites and it allows to customize and built into the device’s OS. This means that apps can easily integrate with other features and tools in a device as well as support functions that are not possible with web-based HTML5.

Speed: Mobile apps are designed top to bottom with proficiency. Apps usually have faster loading times than web pages as they are not disordered with unnecessary site elements. The user experience is optimized.

Brand Recognition: Nothing can beat a native app for brand awareness and marketing. With accessible desktop shortcuts, mobile apps put you front and centre on each user’s phone.


Responsive Web Design Vs Mobile Apps


Angular 2 Vs Angular 4

The year 2015-2017 saw a host of new frameworks from the house of JavaScript. Though several of their offerings were unsuccessful to make a resounding impact, Angular and React survived the test of time to become the go to frameworks for successful Angular development. With several frameworks have made headway in the world of application development, Angular has found a special place as one of the best open-source JavaScript frameworks.

This article focusses on the basic comparison between Angular2 and Angular4 and whether or not it is good enough to make a switch. First, let us explore in detail the various features and highlights of Angular2 to be able to make a practical comparison with its successor.


The Angular version two was primarily aimed at the development of mobile applications allowing developers to create a cross platform environment for their applications. The key highlight of Angular 2 was the removal of various supplementary modules from Angular’s core which simplified the process thus improving the performance. The supplementary modules have now found their way to Angular’s ever-growing library of modules where the users can effectively choose and select the components they want while leaving out the redundant components.

Angular 2 was specifically aimed at ES6 and “evergreen” modern browsers. The advantageous point of these browsers is that these automatically update to the most recent version. While developing for these browsers, Angular 2 provides various hacks and workarounds that allow the developers greater freedom build their code. Angular 2 eliminates several limitations that existed previously.


Angular 2 was developed on AtScript, which is a superset of ES6. Traceur compiler combined with ES6 was employed to process Angular that enables it to generate ES5 code. It utilizes TypeScript syntax to create runtime type assertions instead of compiling time tests. However, it is not compulsory to use AtScript to compose Angular apps. The user can alternatively use plain JavaScript or ES5 to attain effective results. Let us explore deeper into the various key features of Angular 2.


Dependency Injection was one of the important factors that set Angular apart from its primary competitors. Dependency Injection refers to a program design pattern where a specific program commendably gets hold of its dependencies instead of producing them. Dependency Injection is very helpful in cases of modular development and element isolation. Despite that DI has also faced several obstacles since the era of Angular 1.x. Angular 2 finally came with the answers to the problems along with some of the missing features such as child injectors and lifetime/scope control.


One of the major advantages of Atscript is that it supplies useful tools that can help functionally link metadata. This eases out the process of building the object instances by supplying the essential material into the DI library. The information entered will check for the relevant metadata when a function is called, or a class instance is created. A developer can also easily override the parameter information by hitting the “Inject” annotation.


A child injector has the privileges such that it inherits all the functionalities possessed by its parent injectors, but it also comes with a capacity to override them at the child level. This capability provided by Angular 2 gives the developer a free hand to call out and mechanically override several components under a variety of scopes as the situation would demand.


Even though Angular 2 was a significant improvement from its predecessors, Angular 4 takes it forward with some new features and improved capabilities.

Let us study one by one how Angular 4 has secured itself an edge over Angular 2 and how AngularJS development organizations can leverage it.


Angular 4 applications are smaller as they consume less space and run faster than its older versions. The team working behind Angular are constantly making developments on a regular basis to iron out the inconsequential technical glitches that may exist.


Angular 4 series have come up with several changes which also include several view engine twists to diminish the size of the generated code for various components by as much as 60 percent. This update version has claimed to reduce huge production bundles to mere kilobytes.


One of the main features that Angular boasts of are an improved template binding syntax. The improvement of the *ngIf and *ngFor comes after significant criticism for the lack of the “else” and “if-then-else” clause. Developers can employ an if/else design syntax, or introduce local variables such as “if” to unroll an observable.


Angular has come a long way since Angular 1.x to reach the version that prevails today. This evolution of Angular is expected to continue to bring in more revolutionary features to make the development team’s job easier. Even though Angular can be slight challenging to adapt at first, but those who are familiar with the functioning of Angular 2, will find it simpler to adopt Angular 4.


Google Cloud Platform

Google Cloud Platform

Google Cloud Platform is a set of public cloud computing services offered by Google. The platform includes a range of hosted services for compute, storage, and application development that run on Google hardware. Google Cloud Platform services can be accessed by the developers, cloud administrators, and other enterprise IT professionals over the public internet or through a committed network connection. Explore this article and know more about Google cloud platform and its benefits.


Google Cloud Platform offers services for compute, storage, networking, big data, machine learning, and the internet of things (IoT), as-well-as cloud management, security, and developer tools. The core cloud computing products in Google Cloud Platform include:

Google Compute Engine: Is an infrastructure-as-a-service (IaaS) which offers the users with virtual machine instances for workload hosting.

Google App Engine: It is a platform-as-a-service (PaaS) that gives the software developers access to Google’s scalable hosting. The developers can also use a software developer kit to develop software products that run on App Engine.

Google Cloud Storage: Is a cloud storage platform designed to store large, unstructured data sets. Google Cloud also offers database storage options, including Cloud Datastore for NoSQL non-relational storage, Cloud SQL for MySQL fully relational storage, and Google’s native Cloud Bigtable database.

Google Container Engine: Is a management and orchestration system for Docker containers that runs within Google’s public cloud. Google Container Engine is based on the Google Kubernetes container orchestration engine.

Google Cloud Platform offers application development and integration services. For instance, Google Cloud Pub/Sub is a managed and real-time messaging service that allows messages to be exchanged between applications. In addition, Google Cloud Endpoints allows the developers to create services based on RESTful APIs, and then make those services accessible to Apple iOS, Android, and JavaScript clients. Other offerings include Anycast DNS servers, direct network interconnections, load balancing, monitoring, and logging services.


Google continues to enhance higher-level services, such as those related to big data and machine learning, to its cloud platform. Google big data services include those for data processing and analytics, such as Google BigQuery for SQL-like queries made against multi-terabyte data sets. Adding to that, Google Cloud Dataflow is a data processing service intended for analytics; extract, transform, and load (ETL); and real-time computational projects. The platform also includes Google Cloud Dataproc, which offers Apache Spark and Hadoop services for big data processing.


Google bills in minute-level increments (with a 10-minute minimum charge), so the user can only pay for the compute time they use. And a big advantage is that they give you discounted prices for long-running workloads with no up-front commitment required. Use the VMs for a month and the user gets a discount. This makes it perfect for start-ups and for enterprise IT to cut costs. AWS for instance requires prepays in the form of “reserved instances” to be eligible for the discounts. And Azure only offers a 5% discount on a 12-month prepay.


Another big advantage for Google Cloud Hosting, especially for how you can use it at live migrations of Virtual Machines. Neither AWS, Azure, or smaller providers such as Digital Ocean offer this functionality. So this is a very important differentiator for Google Cloud compared to other cloud providers. This means the users are basically always up with their VMs, with no noticeable degradation in performance when they are live migrating VMs between host machines.

The benefits of live migrations allow the engineers at Google to better address issues such as patching, repairing, and updating the software and hardware, without the need to worry about machine reboots.


Another big advantage is security. Choosing Google Cloud Platform means the user gets the benefit of a security model that has been built upon over 15 years, and currently secures products and services such as Gmail, Search, and much more. Google currently employs more than 500 full-time security experts. Niels Provos, a security Engineer at Google, gave a great in-depth look at the security of Google Cloud Platform.

Some of Google Cloud Platform security features include:

All data is encrypted in transit between Google, the customers, and the data centres; as well as the data in all of the Cloud Platform services. The data stored on persistent disks which is encrypted under 256-bit AES and each encryption key is also encrypted with a set of regularly changed master keys.

The layers of the Google application and storage stack require that requests coming from other components are authenticated and authorized.


Google has continued to swiftly build out their infrastructure for Google Cloud Platform. On September 29th, 2016 they have announced the locations of new strategically placed Google Cloud Regions. We are very excited to see São Paulo and Sydney included in the list as this will help dramatically decrease latency for Google Cloud Hosting customers across South America and Australia.


As you can see, when it comes to Google Cloud Hosting and using Google Cloud Platform, there are a lot of advantages. Not only it is inexpensive, but the user can also benefit from one of the largest networks in the world! This means less latency and more accurate compute prices as data is able to be processed in less time. Live migration of virtual machines is currently a unique and very important differentiator when it comes to comparing other cloud hosting providers. Top of all the state of the art security and performance is able to handle hundreds of thousands of concurrent connections and the user will have a platform that can set their business up for long-term success.

Google Cloud Platform Offerings