Spring Interview Questions

Share Embed Donate

Short Description

Some Interview Questions on Spring...


1. 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 code but but desc descri ribe be whic which h serv servic ices es are are need needed ed by whic which h comp compon onen ents ts 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. 2. 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. Sette Se tterr Inje Inject ctio ion n (e.g (e.g.. Spri Spring) ng):: Depen Depende denc ncie ies s are are assi assign gned ed thro through ugh JavaBeans properties (ex: setter methods). Interface Injection (e.g. Avalon): Injection is done through an interface. •

Note: Spring supports only Constructor and Setter Injection 3. 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 e asy by manually allowing you to inject your own objects into the object under test. Loos Loose e coupl couplin ing g is promo promote ted d with with mini minima mall effo effort rt and and leas leastt intr intrus usiv ive e mech mechan anis ism. m. The The fact factor ory y desi design gn patt patter ern n is more more intr intrus usiv ive e beca becaus use e 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 enco encour urag agin ing g mana manage ged d obje object cts s to impl implem emen entt a well well-d -def efin ined ed serv servic ice e interface of your own. IOC containers support eager instantiation and lazy loading of services. Contai Container ners s also also provid provide e support support for instan instantia tiatio tion n of manage managed d object objects, s, cyclical dependencies, life cycles management, and dependency resolution between managed objects etc. •

4. What is Spring ? Sprin Spring g is an open open sour source ce fram framew ework ork crea create ted d to addr addres ess s the the comp comple lexi xity ty of  enterprise application development. One of the chief advantages of the Spring framew framework ork is its layer layered ed archit architect ecture ure,, which which allows allows you to be select selectiv ive e about about which of its components you use while also providing a cohesive framework for J2EE application development.

5. 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. testability. Dependency Injection and Inversion of Control Simplifies JDBC Open source and no vendor lock-in.

6. What are features of 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 techni technique que Invers Inversion ion of Contro Control. l. The objects objects give give their their depende dependenci ncies es instead of creating or looking for dependent objects. Aspect oriented (AOP):Spring supports Aspect oriented programming and enables enables cohesive cohesive development development by separating separating application application business business logic from system services. Container: Spring contains and manages the life cycle and configuration of  • application objects. MVC Framework: Spring comes with MVC web application framework, built • on core Spring functionality functionality.. This framework framework is highly highly configura configurable ble via strategy interfaces, and accommodates multiple view technologies like JSP, JSP, Velocity, Tiles, iText, and POI. But other frameworks can be easily used instead of Spring MVC Framework. • Transaction Management: Spring framework provides a generic ge neric abstraction layer for transaction management. This allowing the developer to add the plugga pluggabl ble e tran transa sact ctio ion n mana manage gers rs,, and and maki making ng it easy easy to dema demarc rcat ate e transactio transactions ns without without dealing dealing with low-level low-level issues. issues. Spring's Spring's transact transaction ion supp support ort is not not tied tied to J2EE J2EE envi enviro ronm nment ents s and and it can can be also also used used in container less environments. JDBC Exception Handling: The JDBC abstraction layer of the Spring offers • a meanin meaningfu gfull except exception ion hiera hierarch rchy y, which which simpli simplifie fies s the error error handli handling ng strategy strategy.. Integration Integration with Hibernate, Hibernate, JDO, and iBA iBATIS: TIS: Spring provides best Integration services with Hibernate, JDO and iBATIS iBATIS •

7. How many modules are there in Spring? What are they?

Spring comprises of seven modules. They are.. •

The core container: The core container provides the essential functionality of the Spring framework. A primary component of the core container is the BeanFactory, an implementation of the Factory pattern. The BeanFactory applies the Inversion of Control (IOC) pattern to separate an application's configurat configuration ion and dependency dependency specifica specification tion from the actual actual applicati application on code. Spring context: The Spring context is a configuration file that provides context information to the Spring framework. The Spring context includes enterprise services such as JNDI, EJB, e-mail, internalization, validation, and scheduling functionality. functionality. Spri Spring ng AOP: AOP: The The Spri Spring ng AOP AOP modu module le inte integr grat ates es aspe aspect ct-o -ori rien ente ted d programming functionality directly into the Spring framework, through its configuration management feature. As a result you can easily AOP-enable any object managed by the Spring framework. The Spring AOP module provides transaction management services for objects in any Spring-based application. With Spring AOP you can incorporate declarative transaction management into your applications without relying on EJB components. Spring DAO: The Spring JDBC DAO abstraction layer offers a meaningful exce except ptio ion n hier hierar arch chy y for for mana managi ging ng the the exce except ptio ion n hand handli ling ng and and erro errorr messages thrown by different database vendors. The exception hierarchy simplifies error handling and greatly reduces the amount of exception code you need to write, such as opening and closing connections. Spring Dao’s JDBC-oriented exceptions comply with its generic DAO exception hierarchy. Spring ORM: The Spring framework plugs into several ORM frameworks to provide its Object Relational tool, including JDO, Hibernate, and iBATIS SQL Maps. All of these comply with Spring's generic transaction and DAO exception hierarchies. Sprin Spring g Web modu module le:: The The Web cont contex extt modu module le buil builds ds on top top of the the application context module, providing contexts for Web-based applications. As a result, the Spring Spr ing framework supports integration with Jakarta Struts. The Web module also eases the tasks of handling multi-part requests and binding request parameters to domain objects. Spring MVC framework: The Model-View-Controller (MVC) framework is a full-featured MVC implementation for building Web applications. The MVC fra framewo mework rk is high highly ly con onfi figu gurrable ble via via strat trateg egy y inter nterfa fac ces and and accommodates numerous view technologies including JSP, Velocity, Tiles, iText, and POI.

8. What are the types of Dependency Injection Spring supports?> Setter Injection: Injection: Setter-based Setter-based DI is realized realized by calling setter methods methods on • your your beans beans after after invok invoking ing a no-arg no-argume ument nt constr construct uctor or or no-arg no-argume ument nt static factory method to instantiate your bean. Constr Construct uctor or Injecti Injection: on: Constr Construct uctoror-bas based ed DI is realiz realized ed by invok invoking ing a • constructor with a number of arguments, argumen ts, each representing a collaborator. collaborator. 9. What is Bean Factory ? A BeanFactory is like a factory class that contains a collection of beans. The BeanF BeanFact actory ory holds holds Bean Bean Defini Definitio tions ns of multip multiple le beans beans within within itself itself and then then instantiates the bean whenever asked for by clients. BeanFactory is able to create associations between collaborating objects as they are instantiated. This removes the burden of configuration from bean itself and the beans client.

BeanFactory also takes part in the life cycle of a bean, making calls to custom initialization and destruction methods. 10. What is Application Context? A bean factory is fine to simple applications, but to take advantage of the full power of the Spring framework, you may want to move up to Springs more advanc advanced ed contai container ner,, the applic applicati ation on contex context. t. On the surfac surface, e, an applic applicati ation on cont contex extt is same same as a bean bean fact factor ory y. Bo Both th load load bean bean defi defini niti tion ons, s, wire wire beans beans together, together, and dispense beans upon request. But it also provides: p rovides: A means for resolving text messages, including suppo pport for internationalization. A generic way to load file resources. Events to beans that are registered as listeners. •

• •

11. 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: Appli Applica cati tion on cont context exts s provi provide de a mean means s for for reso resolv lvin ing g text text mess messag ages es,, 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 Resou esourc rceL eLoa oade derr, Henc Hence e prov provid ides es an appl applic icat atio ion n with with acce access ss to deployment-specific Resource instances. Mess Me ssag ageS eSou ourc rce e supp suppor ort: t: The The appli pplic cati ation con onte text xt impl implem emen ents ts MessageSou MessageSource, rce, an interface interface used to obtain localized localized messages, with the actual implementation being pluggable •

12. What are the common implementations of the Application Context ? The three commonly used implementation of 'Application Context' are ClassPathXmlApplicationContext : It Loads context definition from an XML • file located in the class path, treating context definitions as class path resources. The application context is loaded from the application's class path by using the code . ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml"); •

FileSystemXmlApplicationContext : It loads context definition from an XML file in the filesystem. The application context is loaded from the file system by using the code . ApplicationContext context = new FileSystemXmlApplicationContext("bean.xml");

XmlWebApplicationContext : It loads context definition from an XML file contained within a web application.

13. How is a typical spring implementation look like ? For a typical Spring Application we need the following files: An interface that defines the functions. An Implementation that contains properties, its setter and getter methods, functions etc., Spring AOP (Aspect Oriented Programming) A XML file called Spring configuration file. • • •

• •

Client program that uses the function.

14. What is the typical Bean life cycle in Spring Bean Factory Container? Bean life cycle in Spring Bean Factory Container is as follows: The spring container finds the bean’s definition from the XML file and instantiates the bean. Using the dependency injection, spring populates all of the properties as specified in the bean definition If the bean implements the BeanNameAware interface, the factory calls setBeanName() passing the bean’s ID. If the bean implements the BeanFactoryAware interface, the factory calls setBeanFactory(), setBeanFactory(), passing an instance of itself. If there are any BeanPostProcessors associated with the bean, their postProcessBeforeInitialization() methods will be called. If an init-method is specified for the bean, it will be called. Finally, Finally, if there are any BeanPostProcessors associated with the bean, their postProcessAfterInitialization() methods will be called. •

• •

15. What do you mean by Bean wiring ? The act of creating associations between application components (beans) within the Spring container is referred to as Bean wiring. 16. What do you mean by Auto Wiring? The Spring Spring contai container ner is able able to autowi autowire re relati relations onship hips s between between col collab labora oratin ting g beans beans.. This This mean means s that that it is poss possibl ible e to auto automa mati tica call lly y let let Spri Spring ng resol resolve ve collab col labora orator tors s (other (other beans) beans) for your your bean bean by inspec inspectin ting g the conten contents ts of the BeanFactory. BeanFactory. The autowiring functionality has five modes. no byName byType constructor autodirect • • • • •

17. What is DelegatingVariableResolver? DelegatingVariableResolver? Spring provides a custom JavaServer Faces VariableResolver implementation that extends the standard Java Server Faces managed beans mechanism which lets you use use JSF and Spri Spring ng toge togeth ther er. This his varia ariabl ble e res resolv olver is called lled as DelegatingVariableResolver 18. How to integrate Java Server Faces Faces (JSF) with Spring? JSF and Spring do share some of the same features, most noticeably in the area of IOC IOC serv servic ices es.. By decl declar arin ing g JSF JSF mana manage gedd-bea beans ns in the the face facess-co conf nfig ig.x .xml ml configuration file, you allow the FacesServlet to instantiate that bean at start-up. Your JSF pages have access to these beans and all of their properties. We can integrate JSF and Spring in two ways: DelegatingVariableResolver: Spring comes with a JSF variable resolver that lets you use JSF and Spring together:


The DelegatingVariableResolver will first delegate value lookups to the default resolver of the underlying JSF implementation, and then to Spring's 'business context' WebApplicationContext. This allows one to easily inject dependencies into one's JSF-managed beans. FacesCo FacesContextU ntextUtils: tils: Custom Custom Va Variable riableReso Resolver lver works well when mapping mapping one's properties to beans in faces-config.xml, but at times one may need to grab a bean bean explic explicitl itly y. The FacesCo acesConte ntextU xtUtil tils s class class makes makes this this easy easy. It is simila similarr to WebApplicationContextUtils, except that it takes a FacesContext parameter rather than a ServletContext parameter. parameter. ApplicationContext ctx FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance());


19. What is Java Server Faces (JSF) - Spring integration mechanism? Spring provides a custom JavaServer Faces VariableResolver implementation that extends the standard JavaServer Faces managed beans mechanism. When asked to resolve a variable name, the following algorithm is performed: Does a bean with the specified name already exist in some scope (request, session, application)? If so, return it Is there a standard JavaServer Faces managed bean definition for this variable name? If so, invoke it in the usual way, and return the bean that was created. Is there configuration information for this variable name in the Spring WebAp WebAppli plicat cation ionCon Contex textt for this this applica applicatio tion? n? If so, use it to create create and configure an instance, and return that instance to the caller. caller. If there is no managed bean or Spring definition for this variable name, return null instead. BeanFactory also takes part in the life cycle of a bean, making calls to custom initialization and destruction methods. As a result of this algorithm, you can transparently use either JavaServer Faces or Spring facilities to create beans on demand. •

20. What is Significance of JSF- Spring integration ? Spring Spring - JSF integrati integration on is useful useful when when an event event handle handlerr wishes wishes to explic explicitl itly y invo invoke ke the the bean bean fact factor ory y to crea create te beans beans on dema demand, nd, such as a bean bean that that encapsulates the business logic to be performed when a submit button is pressed.

21. How to integrate your Struts application with Spring? To integrate your Struts application with Spring, we have two options: Conf Confiigure gure Spri Spring ng to mana manage ge you ourr Acti Action ons s as bea beans, ns, usi using the 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( 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 HibernateTemplate and Callback Extending HibernateDaoSupport and Applying an AOP Interceptor • •

24. How to integrate Spring and Hibernate using HibernateDaoSupport? Sprin Spring g and and Hibe Hibern rnate ate can can inte integr grat ate e usin using g Spri Spring ng’’s Se Sess ssio ionF nFac acto tory ry LocalSessionFactory LocalSessionFactory.. The integration process is of 3 steps. Configure the Hibernate SessionFactory Extend your DAO Implementation from HibernateDaoSupport Wire in Transaction Support with AOP

call called ed

• • •

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: Singleton: Scopes a single single bean definition definition to a single object instance per Spring IoC container. Prototype: Scopes a single bean definition d efinition 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. App licationContext. 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 the typi typica call divi divisi sion ons s of resp respon onsi sibi bili lity ty,, such such as logg loggin ing g and and tran transa sact ctio ion n

manage managemen ment. t. The core core const construc ructt of AOP is the aspect aspect,, which which encaps encapsula ulates tes behaviours’ 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 servic service e is declar declarati ative ve transa transacti ction on manage managemen ment, t, which which builds builds on the Spring Spring Framew Framework ork's 's transa transacti ction on abstra abstracti ction: on: To allow allow users users to implem implement ent custom custom aspects, complementing their use of OOP with AOP. AOP. 28. What do you mean by Aspect? Aspe Aspect ct is a modul modular ariz izat atio ion n of a conc concer ern n that that cuts cuts acro across ss mult multip iple le obje object cts. s. Transaction management is a good example of a crosscutting concern in J2EE applications. In Spring AOP, aspects are implemented using regular classes (the sche schema ma-b -bas ased ed appro approac ach) h) or regul regular ar clas classe ses s anno annota tate ted d with with the the @A @Asp spec ectt annotation (@AspectJ style). 29. What do you mean by JointPoint? JointPoint is a point during the execution of a program, such as the execution of a method method or the handling handling of an except exception ion.. In Spring Spring AOP, a join join point point always always represents a method execution. 30. What do you mean by Advice? Advice is action taken by an aspect at a particular join point. Different types of  advice advice includ include e "around "around," ," "befor "before" e" and "after" "after" advice advice.. Many Many AOP framew framework orks, s, includ including ing Spring, Spring, model model an advice advice as an interc intercept eptor or,, mainta maintaini ining ng a chain 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 Around advice: advice: Advice Advice that surrou surrounds nds a join join point point such such as a method 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 respo respons nsib ible le for for choo choosi sing ng whet whethe herr to proc procee eed d to the the join join poin pointt 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 The Sprin Spring g Fram Framew ewor ork k prov provid ides es a cons consis iste tent nt abst abstra ract ctio ion n for for tran transa sact ctio ion n 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 most users users of the Spring Spring Frame Framewor work k choose choose declar declarati ative ve trans transact action ion 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. container. 35. Explai Explain n the simila similarit rities ies and differ differenc ences es betwee between n EJB CMT and the Spring Spring Framework's declarative transaction management ? The basic approach is similar: it is possible to specify transaction behavior (or lac lack of it) it) down down to indi indivi vidu dual al meth method od lev level. el. It is poss possib ible le to mak make a setRollbackOnly() call within a transaction context if necessary. The differences are: Unlike EJB CMT, this is tied to JTA, the Spring Framework’s declarative • transa transacti ction on manage managemen mentt works works in any any enviro environme nment. nt. It can work work with with JDBC JDBC,, JDO, JDO, Hibe Hibern rnat ate e or othe otherr tran transa sact ctio ions ns under under the the cove covers rs,, with with configuration changes only. 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 transactional behavior, using AOP. With EJB CMT, you have no way to influence the container's transaction management other than setRollbackOnly(). setRollbackOnly(). The The Sprin Spring g Fram Framew ewor ork k does does not not supp suppor ortt propa propaga gati tion on of tran transa sact ctio ion n contexts across remote calls, as do high-end application servers. •

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. 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. technology. 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 provide provides s a conven convenien ientt trans translat lation ion from from techno technolog logyy-spe specif cific ic except exception ions s like like SQLException to its own exception class hierarchy with the DataAccessException as the root exception. These exceptions e xceptions wrap the original exception. 40. What is SQLExceptionTranslator 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. 41. What is Spring's JdbcTemplate JdbcTemplate ? Spring's JdbcTemplate is central class to interact with a database through JDBC. JdbcT JdbcTemplat emplate e provide provides s many many conven convenien ience ce method methods s for for doing doing things things such such as conver convertin ting g databa database se data data into into primit primitiv ives es or object objects, s, execut executing ing prepar prepared ed and callable statements, and providing custom database error handling. JdbcTemplate template = new JdbcTemplate(myDataSource);

42. What is PreparedStatementCreator ? One method – createPreparedStatement(Connection) Responsible for creating a PreparedStatement. Does not need to handle SQLExceptions. • •

43. What is SQLProvider ? SQLProvider: Has one method – getSql() Typically implemented by PreparedStatementCreator implementers. People who read this, also read:BREW Interview Questions Spring Questions UML Certification JSF Integration with Spring Framework Tibco Interview Questions • • • • •

Useful for debugging.

44. What is RowCallbackHandler ? The RowCallbackHandler interface extracts values from each row of a ResultSet. Has one method – processRow(ResultSet) processRow(ResultSet) Called for each row in ResultSet. Typically stateful. 45. What are the differences between EJB and Spring ? Spring and EJB feature comparison. Feature Transaction management

Declarati Declarative ve support

EJB Must use a JTA transaction manager. Supp Suppor orts ts tran transa sact ctio ions ns that span remote method calls.

transacti transaction on

Can define define transactio transactions ns declaratively through the deployment descriptor. Can define define transa transacti ction on behavior per method or per per clas class s by usin using g the the wildcard character *.

Spring Supports multiple tran transa sact ctio ion n envi enviro ronm nment ents s through its PlatformTransactionManager inte interf rfac ace, e, incl includ udin ing g JTA, JTA, Hibernate, JDO, and JDBC. Does Does not not nati native vely ly suppo support rt distributed distributed transact transactions— ions—it it must must be used used with with a JTA JTA transaction manager. Can Can defi define ne tran transa sact ctio ions ns decl declar arat ativ ivel ely y thro through ugh the the Spring configuration configuration file or through class metadata. Can define define which which method methods s to apply transaction beha behavi vior or expl explic icit itly ly or by

Can Canno nott dec declar larativ ativel ely y define rollback rollback behavior behavior —this must be done programmatically.

using regular expressions. Can Can decl declar arat ativ ivel ely y defi define ne rollback behavior per method method and per excepti exception on type. Prov Provid ides es a fram framew ewor ork k for for inte integr grat atin ing g with with seve severa rall pers persis iste tenc nce e tech techno nolo logi gies es,, including including JDBC, JDBC, Hibernate, Hibernate, JDO, and iBATIS.

Persisten Persistence ce

Supports Supports programmati programmatic c bean-managed persistence and decl declar arat ativ ive e cont contai aine nerr managed persistence.

Declarative security

Supports declarative secu securi rity ty thro through ugh user users s and roles. The management and implementation of users and and role roles s is cont contai aine nerr specific. Decl Declar arat ativ ive e secu securi rity ty is configured in th e deployment descriptor.

No security security implementat implementation ion out-of-the box. Acegi, an open source security framework built on top of Spring, provides des declarative security through the Spring configuration configuration file or class metadata.

Distributed computing

Provides containermanaged remote method calls.

Provides proxying for remote remote calls calls via RMI, RMI, JAXJAXRPC, and web services.

View more...


Copyright © 2017 KUPDF Inc.