Top Spring XD Interview Questions and Answers
by Sachin, on Jul 20, 2022 7:49:28 PM
Q1. What is Spring XD used for?
Q2. What is a Spring Framework?
- Spring is a powerful open source, application framework created to reduce the complexity of enterprise application development.
- It is light-weighted and loosely coupled.
- It has layered architecture, which allows you to select the components to use, while also providing a cohesive framework for J2EE application development.
- Spring framework is also called the framework of frameworks as it provides support to various other frameworks such as Struts, Hibernate, Tapestry, EJB, JSF etc.
Q3. List the advantages of Spring Framework.
- Because of Spring Frameworks layered architecture, you can use what you need and leave which you don’t.
- Spring Framework enables POJO (Plain Old Java Object) Programming which in turn enables continuous integration and testability.
- JDBC is simplified due to Dependency Injection and Inversion of Control.
- It is open-source and has no vendor lock-in.
Q4. What are the different features of 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.
Q5. What is a Spring configuration file?
A Spring configuration file is an XML file. This file mainly contains the classes information. It describes how those classes are configured as well as introduced to each other. The XML configuration files, however, are verbose and more clean. If it’s not planned and written correctly, it becomes very difficult to manage in big projects.
Q6. What are the different components of a Spring application?
- 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.
Q7. What are the various ways of using Spring Framework?
- As a Full-fledged Spring web application.
- As a third-party web framework, using Spring Frameworks middle-tier.
- For remote usage.
- As Enterprise Java Bean which can wrap existing POJOs (Plain Old Java Objects).
Q8. What is Spring IOC Container?
At the core of the Spring Framework, lies the Spring container. The container creates the object, wires them together, configures them and manages their complete life cycle. The Spring container makes use of Dependency Injection to manage the components that make up an application. The container receives instructions for which objects to instantiate, configure, and assemble by reading the configuration metadata provided. This metadata can be provided either by XML, Java annotations or Java code.
Q9. What do you mean by Dependency Injection?
In Dependency Injection, you do not have to create your objects but have to describe how they should be created. You 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.
Q10. In how many ways can Dependency Injection be done?
- Constructor Injection
- Setter Injection
- Interface Injection
Q11. Differentiate between BeanFactory and ApplicationContext.
|It is an interface defined in org.springframework.beans.factory.||It is an interface defined in org.springframework.context.|
|It uses Lazy initialization||It uses Eager/ Aggressive initialization|
|It explicitly provides a resource object using the syntax||It creates and manages resource objects on its own|
|It doesn’t supports internationalization||It supports internationalization|
|It doesn’t supports annotation based dependency||It supports annotation based dependency|
Q12. What are Spring Beans?
- They are the objects forming the backbone of the user’s application and are managed by the Spring IoC container.
- Spring beans are instantiated, configured, wired, and managed by IoC container.
- Beans are created with the configuration metadata that the users supply to the container (by means of XML or java annotations configurations.)
Q13. What is autowiring and name the different modes of it?
The IoC container autowires relationships between the application beans. Spring lets collaborators resolve which bean has to be wired automatically by inspecting the contents of the BeanFactory.
Different modes of this process are:
- no: This means no autowiring and is the default setting. An explicit bean reference should be used for wiring.
- byName: The bean dependency is injected according to the name of the bean. This matches and wires its properties with the beans defined by the same names as per the configuration.
- byType: This injects the bean dependency based on type.
- constructor: Here, it injects the bean dependency by calling the constructor of the class. It has a large number of parameters.
- autodetect: First the container tries to wire using autowire by the constructor, if it isn't possible then it tries to autowire by byType.
Q14. How many types of IOC containers are there in spring?
- BeanFactory: BeanFactory is like a factory class that contains a collection of beans. It instantiates the bean whenever asked for by clients.
- ApplicationContext: The ApplicationContext interface is built on top of the BeanFactory interface. It provides some extra functionality on top BeanFactory.
Q15. List some of the benefits of IoC.
- 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.
Q16. Name the types of transaction management that Spring supports.
- Programmatic transaction management: In this, the transaction is managed with the help of programming. It provides you extreme flexibility, but it is very difficult to maintain.
- Declarative transaction management: In this, the transaction management is separated from the business code. Only annotations or XML based configurations are used to manage the transactions.
Q17. Explain Spring Beans?
- They are the objects that form the backbone of the user’s application.
- Beans are managed by the Spring IoC container.
- They are instantiated, configured, wired and managed by a Spring IoC container
- Beans are created with the configuration metadata that the users supply to the container.
Q18. How many bean scopes are supported by Spring?
- Singleton: This provides scope for the bean definition to single instance per Spring IoC container.
- Prototype: This provides scope for a single bean definition to have any number of object instances.
- Request: This provides scope for a bean definition to an HTTP-request.
- Session: This provides scope for a bean definition to an HTTP-session.
- Global-session: This provides scope for a bean definition to an Global HTTP-session.
Q19. Explain inner beans in Spring.
A bean can be declared as an inner bean only when it is used as a property of another bean. For defining a bean, the Spring’s XML based configuration metadata provides the use of <bean> element inside the <property> or <constructor-arg>. Inner beans are always anonymous and they are always scoped as prototypes.
Q20. What are the limitations with auto wiring?
- Overriding possibility: You can always specify dependencies using <constructor-arg> and <property> settings which will override autowiring.
- Primitive data type: Simple properties such as primitives, Strings and Classes can’t be autowired.
- Confusing nature: Always prefer using explicit wiring because autowiring is less precise.