Posts

Showing posts with the label Spring

Netflix Hystrix Circuit Breaker

Image
Netflix Hystrix Circuit Breaker In one of my previous blogs, I have already discussed the Circuit breaker pattern and its usage, Today, we will see how can we implement it in our application using Spring Cloud Netflix Hystrix . In this document, I’ll walk you through the process of applying circuit breakers to potentially-failing method calls using the Netflix Hystrix fault tolerance library. Hystrix is watching methods for failing calls to related services. If there is such a failure, it will open the circuit and forward the call to a fallback method. To understand it in a better way, I’ll take the same problem statement that I have already discussed in my previous blog i.e. E-commerce Portal.  I am assuming you must be aware of Spring boot framework as this implementation is completely based on it. As per problem statement, we need two applications i.e. Product Service & Price Service but in this tutorial, I’ll talk about just Product Service as Price Service ...

FAQ Questions on Spring Boot

How to control logging with Spring Boot? By default, the SLF4j Logging is included in the Spring Boot starter package. To enable logging, create a  application.properties  file in the root of the  resources  folder. 1. application.properties logging.level.org.springframework.web=ERROR logging.level.com.waheedtechblog=DEBUG # Logging pattern for the console logging.pattern.console= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n" # Logging pattern for file logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" logging.file=/Users/waheed/application.log Similarly we can configure in application.yml as well. 2. application.yml logging:   level:     org.springframework.web: ERROR     com.waheedtechblog: DEBUG   pattern:     console: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"     file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{3...

Database access with Spring boot

Image
The simplest way of creating Spring boot with MySQL application is via Spring starter project using STS (Spring Tool Suite) IDE. Steps: Create a new project by selecting spring starter project wizard Select project type as Maven, provide project name, packaging, and Java version etc. Select spring boot version and project dependencies After finishing, It will create the project structure with all required dependency. Configure MySQL configuration in application.properties file Now, Create the @Entity model ( User ) which should be persisted in the database . Hibernate will automatically translate entity class into a table. Create the repository (UserRepository.java ) . The Repository interface will be automatically implemented by Spring in a bean with the same name with changing case. For UserRepository, the bean name will be  userRepository . To handle HTTP request, Create a Controller class (UserController.java) having method POST a...

Spring Boot application Example

Image
As we know that there are various ways for creating Spring Boot application. For this sample application, I am going to use STS (Spring Tool Suite) IDE. Steps: Create a new project by selecting spring starter project wizard Select project type as Maven, provide project name, packaging, and Java version etc. Select spring boot version and project dependencies After finishing, you can see the project structure as shown below Spring boot generates a Java file in the  src/main/java  directory, pom.xml file with all required dependency.  T o handle HTTP request, Create a Controller class Now run the  SpringBootExampleApplication.java  as a Java application. It will start the tomcat server on default port i.e. 8080 Open browser and hit url http://localhost:8080/application Note: By Default, Application will start on port 8080 but can override by adding server.port to application.properties file....

What is Spring Boot Initilizr?

Image
Spring Boot Initilizr is a web tool which is provided by Spring on official site using which Spring Boot project can be created by providing project details. It simplifies Spring Applications Development by providing initial project structure and build scripts which reduces development time thus increase productivity. Steps to create Spring Boot project via initilizr ·         Select Maven project and dependencies. Fill other details as shown below and click on generate project. ·         Download the project, extract and now import this project As Maven by using Import option from the STS (Spring Tool Suite) IDE. ·         After finishing, You can see the project structure as shown below: ·      Spring boot generates a Java file in the  src/main/java  directory, pom.xml file with all required dependency. The default created Java ...

Introduction to Spring Boot

Spring Boot is another module provided by Spring Framework which provides RAD (Rapid Application Development) feature to Spring framework. Using boot, we can create standalone Spring based application that you can “just run” in no time and Most Spring Boot applications need very little Spring configuration and it does not require any XML configuration. It uses convention over configuration software design paradigm that means it decrease the effort of developer. Why Spring Boot? As we know Spring framework provides flexibility to configure the beans in multiple ways such as  XML, Annotations  and  JavaConfig. With the number of features increased the complexity also gets increased and configuring Spring applications becomes tedious and error-prone. Spring Boot: ·          Ease the dependency Management , Java-based applications Development, Unit Test and Integration Test Process. Eg: By adding springboot-starte...

Singleton Class Vs Singleton bean scope

I have seen people getting confused between singleton scope vs singleton design pattern. Basically, there is a bit difference between these two. Singleton scope: The spring support five different scopes and it is used to decide which type of bean instance should be returning from Spring container back to the caller. One of the scope is Singleton and the by default scope too. It returns a single bean instance per Spring IoC container. <bean id=”object1” class=“com.package.classname”/> When I said, single bean instance per spring Ioc Container i.e. you will always get the same object regardless of the number of call of the same bean but if you declare another bean for the same class then you will get another object for another bean. Let’s understand this with an example: <bean id=”object1” class=“com.package.classname”/> <bean id=”object2” class=“com.package.classname” scope=”prototype”/> <bean id=”object3” class=“com.package.classname”/...