| Spring Interview Questions
|
|
| 1. Explain about spring applications framework? |
|
Spring architecture helps you to manage your business objects. Implementation part of the spring is
easy because it helps you to introduce it in the middle of the objects. This framework is easy to
implement in testing conditions. This is used by many large vendors.
|
| 2. State some benefits and advantages of spring framework? |
Some of the benefits which spring can offer you are as follows: -
• It is very beneficial for middle tier applications and it can be used in various run time environments.
• Various custom properties need not be used in applications.
• Cost can be reduced by reducing the programming to interface cost ratio.
• Applications built on spring framework are easy to test.
|
| 3. Explain about portability of spring? |
|
Spring applications and framework are portable between different servers. This framework and applications are portable
between many different servers such as Tomcat, Jetty, Web Logic, Web Sphere, Resin, Geronimo, etc. Environment features
can be implemented without affecting portability.
|
| 4. Explain about Bean factory? |
|
Spring is designed to work with Java Beans and this forms the core part of the Spring Framework. This is a
generic factory and it lets users and developers to enable objects by name. This helps to manage relationships
between objects.
|
| 5. Explain about the two models of the object which Bean Factory supports? |
Two models of object which bean factory supports are: -
1) Single ton and prototype.
Singleton has one instance (shared) with an object and it is assigned a specific name which can be retrieved on lookup.
Prototype results in creation of an independent object.
|
| 6. Explain about Bean definition Reader interface? |
|
Bean definition reader interface separates Bean factory implementations from metadata format. This is very useful if the application
needs different metadata implementations. This framework or interface can be implemented in different ways.
|
| 7. State about the commonly used Bean Factory definitions? |
The most commonly used bean factory definitions are as follows: -
1) XML bean factory and
2) DefaultListable beanfactory.
XMLbean factory is used to parse XML structure to define classes and properties of objects (named).
DefaultListablebeanfactory is useful to program bean factories and parse definitions.
|
| 8. Explain about inversion control behavior? |
|
Inversion control behavior is obtained through bean factory concept. The best part about this container
is it can be coded in a single line and has simple deployment steps. Inversion of control behavior is very
useful to avoid heavy containers such as EJB.
|
| 9. Explain about dependency injection? |
|
Dependency injection is used to remove dependence of explicit coding on container. It resembles to a form of IoC.
Java methods are chiefly used to inject dependencies into an object. It is used to collaborate and configure values into an object.
|
| 10. Explain why an organization needs to implement spring framework? |
Spring framework is essential because it touches important aspects such as
1) It is very useful to manage business objects
2) Spring architecture is very flexible it regains its architecture even when you can take some parts of it.
3) Testing part is very efficient and east to use.
4) Vendors recognized its importance and they are using it for enterprise Java development.
|
| 11. Explain about how to deploy applications using POJOs? |
|
Spring helps you to develop components using POJOs. Spring Framework takes care of your need to build enterprise applications.
Infrastructure of your application should be away from the business logic because it can improve the pace of your business logic
changes. This is provided by Springs Framework.
|
| 12. Explain about auto wire support? |
|
When auto wire is used as an optional attribute it reduces the volume of configuration. Auto wire should
be used on the root element and this is used to activate auto wiring for all beans. If you would like to
add an additional constructor it can be populates without the need to change configuration.
|
| 13. Explain the three different methods which are provided by the Namespace Handler interface? |
The three different methods which are provided by the name space handler interface are: -
1) Init() is used to allow initialization for name space handler.
2) BeanDefinition parse is used when a Spring encounters a top level element.
3) BeanDefinitionHandler is used when spring encounters an attribute.
|
| 14. Explain about the different ways in which Spring JDBC can help you? |
There are several ways in which a spring JDBC can help you they are: -
1) Connection leaks can be avoided.
2) Code can be focused on necessary SQL and it is very low.
3) Applications will never have to depend on RDBMS error specification handling.
4) You can easily implement DAO pattern without business logic.
|
| 15. Explain about exception wrapping? |
|
Wrapping can be effectively done using spring. It makes the proprietary code to run in the ORM layer to a set of abstracted run time
exceptions. Persistence exceptions can be easily handled. Handling of exceptions can be done very easily.
|
| 16. Explain about transaction management in spring? |
Spring uses its own abstract for transaction management. It uses to deliver
1) Programmatic transaction management through SimpleJdbcTemplate.
2) Declarative transaction management is similar to EJB. It is compatible with superset of EJB CMT with some unique features.
|
| 17. Explain about integration of spring with AspectJ? |
|
Spring integrates comfortably with AspectJ and this aspect makes it very poular. It makes it possible to include AspectJ
aspects into Spring applications. Using Spring IoC container it is possible for dependency inject AspectJ. AspectJ is
also used to inject non spring managed POJO using spring. It is uses XML and annotation driven pointcuts.
|
| 18. What is Spring? |
|
Spring is a lightweight inversion of control and aspect-oriented container framework.
|
| 19. Explain Spring? |
» Lightweight - spring is lightweight when it comes to size and transparency. The basic version of
spring framework is around 1MB.
And the processing overhead is also very negligible.
» Inversion of control (IoC) - Loose coupling is achieved in spring using the technique Inversion of Control. The objects
give their dependencies instead of creating or looking for dependent objects.
» Aspect oriented (AOP) - Spring supports Aspect oriented programming and enables cohesive development by separating
application business logic from system services.
» Container - Spring contains and manages the life cycle and configuration of application objects.
» Framework - Spring provides most of the intra functionality leaving rest of the coding to the developer.
|
| 20. What is IOC (or Dependency Injection)? |
The basic concept of the Inversion of Control pattern (also known as dependency injection) is that you do not create
your objects but describe how they should be created. You don't directly connect your components and services together
in code but describe which services are needed by which components in a configuration file. A container
(in the case of the Spring framework, the IOC container) is then responsible for hooking it all up.
i.e., Applying IoC, objects are given their dependencies at creation time by some
external entity that coordinates each object in the system. That is, dependencies are injected into objects. So,
IoC means an inversion of responsibility with regard to how an object obtains references to collaborating objects.
|
| 21. What are the different types of IOC (dependency injection) ? |
There are three types of dependency injection:
» Constructor Injection (e.g. Pico container, Spring etc): Dependencies are provided as constructor parameters.
» Setter Injection (e.g. Spring): Dependencies are assigned through JavaBeans properties (ex: setter methods).
» Interface Injection (e.g. Avalon): Injection is done through an interface.
Note: Spring supports only Constructor and Setter
Injection |
| 22. What are the benefits of IOC (Dependency Injection)? |
Benefits of IOC (Dependency Injection) are as follows:
Minimizes the amount of code in your application. With IOC containers you do not care about how services are
created and how you get references to the ones you need. You can also easily add additional services by
adding a new constructor or a setter method with little or no extra configuration.
Make your application more testable by not requiring any singletons or JNDI lookup mechanisms in your
unit test cases. IOC containers make unit testing and switching implementations very easy by manually
allowing you to inject your own objects into the object under test.
Loose coupling is promoted with minimal effort and least intrusive mechanism. The factory design pattern is
more intrusive because components or services need to be requested explicitly whereas in IOC the dependency
is injected into requesting piece of code. Also some containers promote the design to interfaces not to
implementations design concept by encouraging managed objects to implement a well-defined service interface of your own.
IOC containers support eager instantiation and lazy loading of services. Containers also provide support for instantiation
of managed objects, cyclical dependencies, life cycles management, and dependency resolution between managed objects etc.
|
| 23. What are the advantages of Spring framework? |
The advantages of Spring are as follows:
» Spring has layered architecture. Use what you need and leave you don't need now.
» Spring Enables POJO Programming. There is no behind the scene magic here. POJO programming
enables continuous integration and testability.
» Dependency Injection and Inversion of Control Simplifies JDBC
» Open source and no vendor lock-in.
|
| 24. What are the different modules in Spring framework? |
»
The Core container module
» Application context module
» AOP module (Aspect Oriented Programming)
» JDBC abstraction and DAO module
» O/R mapping integration module (Object/Relational)
» Web module
» MVC framework module
|
| 25. What is the Core container module? |
|
This module is provides the fundamental functionality of the spring framework. In this module BeanFactory
is the heart of any spring-based application. The entire framework was built on the top of this module.
This module makes the spring container.
|
| 26. What is Application context module? |
|
The Application context module makes spring a framework. This module extends the concept of BeanFactory, providing
support for internationalization (I18N) messages, application lifecycle events, and validation. This module also
supplies many enterprise services such JNDI access, EJB integration, remoting, and scheduling. It also provides
support to other framework.
|
| 27. What is AOP module? |
|
The AOP module is used for developing aspects for our Spring-enabled application. Much of the support has been
provided by the AOP Alliance in order to ensure the interoperability between Spring and other AOP frameworks.
This module also introduces metadata programming to Spring. Using Spring's metadata support, we will be able to
add annotations to our source code that instruct Spring on where and how to apply aspects.
|
| 28. What is JDBC abstraction and DAO module? |
|
Using this module we can keep up the database code clean and simple, and prevent problems that result from a failure to
close database resources. A new layer of meaningful exceptions on top of the error messages given by several database
servers is bought in this module. In addition, this module uses Spring's AOP module to provide transaction management
services for objects in a Spring application.
|
| 29. What are object/relational mapping integration module? |
|
Spring also supports for using of an object/relational mapping (ORM) tool over straight JDBC by providing the ORM module.
Spring provide support to tie into several popular ORM frameworks, including Hibernate, JDO, and iBATIS SQL Maps. Spring's
transaction management supports each of these ORM frameworks as well as JDBC.
|
| 30. What is web module? |
|
This module is built on the application context module, providing a context that is appropriate for web-based applications.
This module also contains support for several web-oriented tasks such as transparently handling multipart requests for
file uploads and programmatic binding of request parameters to your business objects. It also contains integration
support with Jakarta Struts.
|
| 31. What is a BeanFactory? |
|
A BeanFactory is an implementation of the factory pattern that applies Inversion of Control to separate the application's
configuration and dependencies from the actual application code.
|
| 32. What is the difference between Bean Factory and Application Context ? |
On the surface, an application context is same as a bean factory. But application context offers much more.
» Application contexts provide a means for resolving text messages, including support for i18n of those messages.
» Application contexts provide a generic way to load file resources, such as images.
» Application contexts can publish events to beans that are registered as listeners.
» Certain operations on the container or beans in the container, which have to be handled in a programmatic fashion with
a bean factory, can be handled declaratively in an application context.
» ResourceLoader support: Spring's Resource interface us a flexible generic abstraction for handling low-level resources.
» An application context itself is a ResourceLoader, Hence provides an application with access to deployment-specific Resource instances.
» MessageSource support: The application context implements MessageSource, an interface used to obtain localized messages,
with the actual implementation being pluggable .
|
| 33. What is AOP Alliance? |
|
AOP Alliance is an open-source project whose goal is to promote adoption of AOP
and interoperability among different AOP implementations by defining a common
set of interfaces and components.
|
| 34. What is Spring configuration file? |
|
Spring configuration file is an XML file. This file contains the classes information and describes how these
classes are configured and introduced to each other.
|
| 35. What does a simple spring application contain? |
|
These applications are like any Java application. They are made up of several classes, each performing a specific
purpose within the application. But these classes are configured and introduced to each other through an XML file.
This XML file describes how to configure the classes, known as the Spring configuration file.
|
| 36. What is XMLBeanFactory? |
1.BeanFactory has many implementations in Spring. But one of the most useful one is org.springframework.beans.factory.xml.XmlBeanFactory,
which loads its beans based on the definitions contained in an XML file. To create an XmlBeanFactory, pass a java.io.InputStream
to the constructor. The InputStream will provide the XML to the factory. For example, the following code snippet uses
a java.io.FileInputStream to provide a bean definition XML file to XmlBeanFactory.
2.BeanFactory factory = new XmlBeanFactory(new FileInputStream("beans.xml"));
3.To retrieve the bean from a BeanFactory, call the getBean() method by passing the name of the bean you want to retrieve.
4.MyBean myBean = (MyBean) factory.getBean("myBean");
|
| 37. What are important ApplicationContext implementations in spring framework? |
1.ClassPathXmlApplicationContext - This
context loads a context definition from an XML file located in the
class path, treating context definition files as class path resources.
2.FileSystemXmlApplicationContext - This
context loads a context definition from an XML file in the filesystem.
3.XmlWebApplicationContext - This context
loads the context definitions from an XML file contained within a
web application. |
| 38. Explain Bean lifecycle in Spring framework? |
1.The spring container finds the bean's
definition from the XML file and instantiates the bean.
2.Using the dependency injection, spring
populates all of the properties as specified in the bean definition.
3.If the bean implements the BeanNameAware
interface, the factory calls setBeanName() passing the bean's ID.
4.If the bean implements the BeanFactoryAware
interface, the factory calls setBeanFactory(), passing an instance
of itself.
5.If there are any BeanPostProcessors
associated with the bean, their post- ProcessBeforeInitialization()
methods will be called.
6.If an init-method is specified for
the bean, it will be called.
Finally, if there are any BeanPostProcessors associated with the bean, their postProcessAfterInitialization() methods will be called
|
| 39. What is bean wiring? |
|
Combining together beans within the Spring container is known as bean wiring or wiring. When wiring beans, you should tell
the container what beans are needed and how the container should use dependency injection to tie them together.
|
| 40. How to add a bean in spring application? |
In the bean tag the id attribute specifies the bean name and the class attribute specifies the fully qualified class name.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="foo" class="com.act.Foo"/>
<bean id="bar" class="com.act.Bar"/>
</beans>
|
| 41. What are singleton beans and how can you create prototype beans? |
Beans defined in spring framework are singleton beans. There is an attribute in bean tag named 'singleton'
if specified true then bean becomes singleton and if set to false then the bean becomes a prototype bean.
By default it is set to true. So, all the beans in spring framework are by default singleton beans.
<beans>
<bean id="bar" class="com.act.Foo" singleton="false"/>
</beans>
|
| 42. What are the important beans lifecycle methods? |
|
There are two important bean lifecycle methods. The first one is setup which is called when the bean is loaded in to the container.
The second method is the teardown method which is called when the bean is unloaded from the container.
|
| 43. How can you override beans default lifecycle methods? |
The bean tag has two more important attributes with which you can define your own custom initialization
and destroy methods. Here I have shown a small demonstration. Two new methods fooSetup and fooTeardown
are to be added to your Foo class.
<beans>
<bean id="bar" class="com.act.Foo" init-method="fooSetup" destroy="fooTeardown"/>
</beans>
|
| 44. What are Inner Beans? |
|
When wiring beans, if a bean element is embedded to a property tag directly, then that bean is said to the Inner Bean.
The drawback of this bean is that it cannot be reused anywhere else.
|
| 45. What is DelegatingVariableResolver? |
|
Spring provides a custom JavaServer Faces VariableResolver implementation that extends the standard Java Server
Faces managed beans mechanism which lets you use JSF and Spring together. This variable resolver is called as
DelegatingVariableResolver.
|
|
Back to Top |