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
- @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.
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