Spring interview questions and answers
21. How to integrate
your Struts application with Spring?
To integrate your Struts application with Spring, we have two options:
- Configure Spring
to manage your Actions as beans, using the ContextLoaderPlugin, and set
their dependencies in a Spring context file.
- Subclass
Spring's ActionSupport classes and grab your Spring-managed beans
explicitly using a getWebApplicationContext() method.
22. What are ORM’s
Spring supports ?
Spring supports the following ORM’s :
- Hibernate
- iBatis
- JPA (Java
Persistence API)
- TopLink
- JDO (Java Data
Objects)
- OJB
23. What are the
ways to access Hibernate using Spring ?
There are two approaches to Spring’s Hibernate integration:
- Inversion of
Control with a HibernateTemplate and Callback
- Extending
HibernateDaoSupport and Applying an AOP Interceptor
24. How to integrate
Spring and Hibernate using HibernateDaoSupport?
Spring and
Hibernate can integrate using Spring’s SessionFactory called
LocalSessionFactory. The integration process is of 3 steps.
- Configure the
Hibernate SessionFactory
- Extend your DAO
Implementation from HibernateDaoSupport
- Wire in
Transaction Support with AOP
25. What are Bean
scopes in Spring Framework ?
The Spring Framework
supports exactly five scopes (of which three are available only if you are
using a web-aware ApplicationContext). The scopes supported are listed below:
Scope
|
Description
|
singleton
|
Scopes a single bean definition to a single object instance
per Spring IoC container.
|
prototype
|
Scopes a single bean definition to any number of object
instances.
|
request
|
Scopes a single bean definition to the lifecycle of a single
HTTP request; that is each and every HTTP request will have its own instance
of a bean created off the back of a single bean definition. Only valid in the
context of a web-aware Spring ApplicationContext.
|
session
|
Scopes a single bean definition to the lifecycle of a HTTP
Session. Only valid in the context of a web-aware Spring ApplicationContext.
|
global session
|
Scopes a single bean definition to the lifecycle of a global
HTTP Session. Typically only valid when used in a portlet context. Only valid
in the context of a web-aware Spring ApplicationContext.
|
26. What is AOP?
Aspect-oriented
programming, or AOP, is a programming technique that allows programmers to
modularize crosscutting concerns, or behavior that cuts across the typical
divisions of responsibility, such as logging and transaction management. The
core construct of AOP is the aspect, which encapsulates behaviors affecting
multiple classes into reusable modules.
27. How the AOP used
in Spring?
AOP is used in the Spring
Framework:To provide declarative
enterprise services, especially as a replacement for EJB declarative services. The most important such service is
declarative transaction management, which builds on the Spring Framework's
transaction abstraction.To allow users to implement custom aspects,
complementing their use of OOP with AOP.
28. What do you mean
by Aspect ?
A modularization of
a concern that cuts across multiple objects. Transaction management is a good
example of a crosscutting concern in J2EE applications. In Spring AOP, aspects are implemented using regular classes
(the schema-based approach) or regular classes annotated with the @Aspect annotation (@AspectJ style).
29. What do you mean
by JointPoint?
A point during the execution of a program, such as the execution
of a method or the handling of an exception. In Spring AOP, a join point always
represents a method execution.
30. What do you mean
by Advice?
Action taken by an aspect at a particular join point. Different
types of advice include "around," "before" and
"after" advice. Many AOP frameworks, including Spring, model an
advice as an interceptor, maintaining a chain of interceptors
"around" the join point.
31. What are the
types of Advice?
Types of advice:
- Before
advice:
Advice that executes before a join point, but which does not have the
ability to prevent execution flow proceeding to the join point (unless it
throws an exception).
- After
returning advice:
Advice to be executed after a join point completes normally: for example,
if a method returns without throwing an exception.
- After
throwing advice:
Advice to be executed if a method exits by throwing an exception.
- After
(finally) advice:
Advice to be executed regardless of the means by which a join point exits
(normal or exceptional return).
- Around
advice:
Advice that surrounds a join point such as a method invocation. This is
the most powerful kind of advice. Around advice can perform custom
behavior before and after the method invocation. It is also responsible
for choosing whether to proceed to the join point or to shortcut the
advised method execution by returning its own return value or throwing an
exception
32. What are the
types of the transaction management Spring supports ?
Spring Framework supports:
- Programmatic
transaction management.
- Declarative
transaction management.
33. What are the
benefits of the Spring Framework transaction management ?
The Spring Framework
provides a consistent abstraction for transaction management that delivers the
following benefits:
- Provides a
consistent programming model across different transaction APIs such as
JTA, JDBC, Hibernate, JPA, and JDO.
- Supports
declarative transaction management.
- Provides a
simpler API for programmatic transaction management than a number of complex
transaction APIs such as JTA.
- Integrates very
well with Spring's various data access abstractions.
34. Why most users
of the Spring Framework choose declarative transaction management ?
Most users of the Spring Framework choose declarative transaction management because it is the option with the least impact on application code, and hence is most consistent with the ideals of a non-invasive lightweight container.
35. Explain the
similarities and differences between EJB CMT and the Spring Framework's
declarative transaction management ?
The basic approach is
similar: it is possible to specify transaction behavior (or lack of it) down to
individual method level. It ispossible to make a setRollbackOnly() call
within a transaction context if necessary. The differences are:
- Unlike EJB CMT,
which is tied to JTA, the Spring Framework's declarative transaction
management works in any environment. It can work with JDBC, JDO, Hibernate
or other transactions under the covers, with configuration changes only.
- The Spring
Framework enables declarative transaction management to be applied to any
class, not merely special classes such as EJBs.
- The Spring
Framework offers declarative rollback rules: this is a feature with no EJB equivalent.
Both programmatic and declarative support for rollback rules is provided.
- The Spring
Framework gives you an opportunity to customize transactional behavior,
using AOP. With EJB CMT, you have no way to influence the container's
transaction management other than setRollbackOnly().
- The Spring
Framework does not support propagation of transaction contexts across
remote calls, as do high-end application servers.
36. 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.
37. When to use
programmatic and declarative transaction management ?
Programmatic transaction management is usually
a good idea only if you have a small number of transactional operations.
On the other hand, if your application has numerous transactional operations, declarative transaction management is usually worthwhile. It keeps transaction management out of business logic, and is not difficult to configure.
On the other hand, if your application has numerous transactional operations, declarative transaction management is usually worthwhile. It keeps transaction management out of business logic, and is not difficult to configure.
38. Explain about
the Spring DAO support ?
The Data Access Object (DAO) support in Spring is aimed at
making it easy to work with data access technologies like JDBC, Hibernate or
JDO in a consistent way. This allows one to switch between the persistence
technologies fairly easily and it also allows one to code without worrying
about catching exceptions that are specific to each technology.
39. What are the exceptions thrown by the Spring DAO classes ?
39. What are the exceptions thrown by the Spring DAO classes ?
Spring DAO classes throw exceptions which are subclasses of
DataAccessException(org.springframework.dao.DataAccessException).Spring
provides a convenient translation from technology-specific exceptions like
SQLException to its own exception class hierarchy with the DataAccessException
as the root exception. These exceptions wrap the original exception.
40. What is
SQLExceptionTranslator ?
SQLExceptionTranslator, is an interface to be implemented by
classes that can translate between SQLExceptions and Spring's own
data-access-strategy-agnostic org.springframework.dao.DataAccessException.
0 comments:
Post a Comment