Tuesday, August 18, 2020

Interview questions on spring

 Hi friends,

In this post, I am sharing interview questions and answers based on spring concepts.


Question 1:

List all the spring core , stereotype annotations, spring boot annotations and spring MVC and WEB annotations.

Answer:

  • @Qualifier
  • @Autowired
  • @Required
  • @ComponentScan
  • @Configuration
  • @Bean
  • @Lazy
  • @Value

Spring Framework Stereotype annotations:

  • @Component
  • @Controller
  • @Service
  • @Repository

Spring Boot Annotations:

 

  • @EnableAutoConfiguration
  • @SpringBootApplication

 

Spring MVC and REST[WEB]  Annotations:

 

  • @Controller
  • @RequestMapping
  • @CookieValue
  • @CrossOrigin
  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping
  • @PatchMapping
  • @ExceptionHandler
  • @InitBinder
  • @Mappings and @Mapping
  • @MatrixVariable
  • @PathVariable
  • @RequestAttribute
  • @RequestBody
  • @RequestHeader
  • @RequestParam
  • @RequestPart
  • @ResponseBody
  • @ResponseStatus
  • @ControllerAdvice
  • @RestController
  • @RestControllerAdvice
  • @SessionAttribute
  • @SessionAttributes


Question 2:

What is the use of @Required annotation?

Answer:

It is required when we want to ensure that all the required properties have been set.

In Spring, there is dependency-check attribute and using this we can only check whether the properties has been set or not. But we can’t check if their value is set to null or non-null.

Using @Required annotation we can check if values are set to non-null.

It is used on setter methods.

While using @Required, we should register RequiredAnnotationBeanPostProcessor class that checks if all the bean properties with the @Required annotation has been set.

applicationContext.xml ->

<bean id="manager"  class="com.howtodoinjava.demo.factory.EmployeeFactoryBean">

    <!-- <property name="designation" value="Manager" /> -->

</bean>

 

<bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor" />

 

 

Note: If any property with @Required annotation have not been set, a BeanInitializationException will be thrown by this bean post processor.

In this way, you can use @Required annotation and RequiredAnnotationBeanPostProcessor class to verify that on context initialization, all the required bean properties have been set properly.


Question 3:

What is the use of @Value annotation?

Answer:

This annotation is used to assign default value to variables and method arguments. We can read Spring environment variables and System variables as well.

@Value only takes String values.


@Value("true")

private boolean defaultBoolean;

@Value("10")

private int defaultInt; 


@Value("Test")

public void printValues(String s, String v) // Both s and v values will be test.


@Value("Test")

public void printValues(String s, @Value("Data") String v) // Here s will be Test and v will be Data.



Question 4:

What are available spring framework modules?

Answer:

  • Spring Core module
  • Spring MVC module
  • Spring Context [J2EE]
  • Spring DAO module
  • Spring ORM module
  • Spring AOP


Question 5:

What are the different features of spring framework?

Answer:

There are multiple features in spring framework.


  • Lightweight: Spring is lightweight when it comes to size and transparency. 
  • Inversion of control (IOC): The objects give their dependencies instead of creating or looking for dependent objects. This is called Inversion Of Control.
  • Aspect oriented Programming (AOP): Aspect oriented programming in Spring supports cohesive development by separating application business logic from system services.
  • Container: Spring Framework creates and manages the life cycle and configuration of the application objects.
  • MVC Framework: Spring Framework’s MVC web application framework is highly configurable. Other frameworks can also be used easily instead of Spring MVC Framework.
  • Transaction Management: Generic abstraction layer for transaction management is provided by the Spring Framework. Spring’s transaction support can be also used in container less environments.
  • JDBC Exception Handling: The JDBC abstraction layer of the Spring offers an exception hierarchy, which simplifies the error handling strategy.

 


Question 6:

What are the different components of a spring application?

Answer:

A Spring application, generally consists of following components:

  • Interface: It defines the functions.
  • Bean class: It contains properties, its setter and getter methods, functions etc.
  • Spring Aspect Oriented Programming (AOP): Provides the functionality of cross-cutting concerns.
  • Bean Configuration File: Contains the information of classes and how to configure them.
  • User program: It uses the function.

 

Question 7:

What do we mean by dependency injection?

Answer:

In Dependency Injection, we do not have to create your objects but have to describe how they should be created

We don’t connect your components and services together in the code directly, but describe which services are needed by which components in the configuration file. The IoC container will wire them up together.


Question 8:

What are the benefits of using IOC in spring?

Answer:

Some of the benefits of IOC are:

  • It will minimize the amount of code in your application.
  • It will make your application easy to test because it doesn’t require any singletons or JNDI lookup mechanisms in your unit test cases.
  • It promotes loose coupling with minimal effort and least intrusive mechanism.
  • It supports eager instantiation and lazy loading of the services.

 


That's all for this post.

Thanks for reading!!

No comments:

Post a Comment

CAP Theorem and external configuration in microservices

 Hi friends, In this post, I will explain about CAP Theorem and setting external configurations in microservices. Question 1: What is CAP Th...