Skip to main content

Posts

@interface vs interface in Java

@interface is an annotation type declaration which resembles a Java Interface declaration - interface. Examples of standard Java annotations include @Override, @SuppressWarning etc. Java has always had meta-data tags like transient and Javadoc tag @deprecated. Annotations do not impact the flow of the program but impact the way a program is treated by tools or libraries.
Recent posts

Best Practices: Config changes in Spring Boot

Any additional Spring configuration beyond what Spring boot auto-configuration provides, its always better to write separate @Configuration-configured classes. These @Configuration annotated classes will be picked up by component scanning and included in the Spring configuration. Its always judicial to avoid adding configuration to the primary Spring configuration class or application's bootstrap class.

Spring Boot default Tomcat server port change

By default, Spring boot starts Tomcat server on port 8080. This can however be changed by a simple configuration update to the application.properties file in the resource folder. Add the following entry to the application.properties file to change the port at which Tomcat server is hosted: server.port=8085

POST vs PUT

There are multiple ways developers will explain the difference between POST and PUT but fundamentally idempotency is the most distinguishing and important difference. Idempotent HTTP requests will result in the same state on the server no matter how many times that same request is executed. GET, HEAD, PUT, and DELETE all have this attribute but POST does not. So the operations that should be idempotent should not be handled by POST but by PUT. For example, 'POST /tweets' will create a new tweet and might return a url to identify the new tweet resource with 'tweet/1007' 'PUT /tweet/1007' will either create a new tweet if it does not already exist, or replace the existing tweet with new information. Remember, POST will always have a side-effect!