|
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
|
What is Spring?
|
| Spring is a lightweight
inversion of control and aspect-oriented container framework. |
| Explain
Spring? |
|
| 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. |
| What
are the different types of IOC (dependency injection) ? |
There are three types of
dependency injection:
Note: Spring supports only Constructor and Setter Injection |
| 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. |
| What
are the advantages of Spring framework? |
The advantages of Spring are as
follows:
|
| What
are the different modules in Spring framework? |
|
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| What
is web module? |
| Spring comes with a
full-featured MVC framework for building web applications. Although
Spring can easily be integrated with other MVC frameworks, such as
Struts, Spring's MVC framework uses IoC to provide for a clean
separation of controller logic from business objects. It also allows
you to declaratively bind request parameters to your business objects.
It also can take advantage of any of Spring's other services, such as
I18N messaging and validation. |
| 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. |
| 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..
|
| 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. |
| 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. |
| 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. |
| What
is XMLBeanFactory? |
| 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. BeanFactory factory = new XmlBeanFactory(new FileInputStream("beans.xml")); To retrieve the bean from a BeanFactory, call the getBean() method by passing the name of the bean you want to retrieve. MyBean myBean = (MyBean) factory.getBean("myBean"); |
| What
are important ApplicationContext implementations in spring framework? |
|
| Explain
Bean lifecycle in Spring framework? |
|
| 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. |
| 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> |
| 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> |
| 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. |
| 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> |
| 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. |
| 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 |
|
Page 1
,
Page 2
,
Page 3
|