0% found this document useful (0 votes)
126 views7 pages

By Sunkara Ravi Prakash Software Architect (Java & Voip Sip Protocol) Afxisi Inc LLC

The document discusses integrating the Spring framework with Hibernate. It explains that Spring can help overcome issues like manually opening and closing Hibernate session objects. The key classes and configurations needed for integration are described, including LocalSessionFactoryBean for the SessionFactory, HibernateTransactionManager for transactions, and TransactionProxyFactoryBean for transactional proxies. An example applicationContext.xml configuration file is provided to illustrate how these pieces fit together.

Uploaded by

kalim949
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
126 views7 pages

By Sunkara Ravi Prakash Software Architect (Java & Voip Sip Protocol) Afxisi Inc LLC

The document discusses integrating the Spring framework with Hibernate. It explains that Spring can help overcome issues like manually opening and closing Hibernate session objects. The key classes and configurations needed for integration are described, including LocalSessionFactoryBean for the SessionFactory, HibernateTransactionManager for transactions, and TransactionProxyFactoryBean for transactional proxies. An example applicationContext.xml configuration file is provided to illustrate how these pieces fit together.

Uploaded by

kalim949
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 7

By

Sunkara Ravi Prakash


Software Architect(JAVA & VOIP SIP protocol)
AFxisi Inc LLC
[email protected]
Integration of Springs framework in Hibernates.

 In this docs tells and explains to the Intermediate developers or


programmers in java. Initial, should be understand how the
Hibernate ORM framework tool works without integrating with
springs.

 In Springs there are seven modules. Among them, for hibernate


integrating with Spring, before that they have to know the
Abstract DAO and Skeleton Design Patterns.

 Integration of Springs overcomes unnecessary of SessionFactory and


Session objects of the Hibernate, so it has to close the sessions
after the used transactions.

 Springs will construct the SessionFactory and Session object of


Transaction persistence’s. So not to cares about the session
closing object in Hibernate.

 Some Plug-in’s are they are which can do caring the session
objects, If you’re going use the Struts2 with hibernates[which
using AbstractGenricDAO Patterns with cacade pattern].

 But Springs is a AOP, Bean Factory Object patterns. It Can


Integration different DB vendor in single applicationcontext. So
Springs care their session objects persistence’s.

 In simply words, initializing the objects through xml and


reference the objects from xml.

The modules invoked in Spring and hibernate are.


 Spring Core, which is a IOC, primary component of BeanFactory, an
Factory Pattern. The container is then responsible for hooking it
all up. That describes in configure file.
 Spring DAO, module provides a JDBC-abstraction layer that reduces
the need to do tedious JDBC coding and parsing of database-vendor
specific error codes. Also, the JDBC package provides a way to do
programmatic as well as declarative transaction management, not
only for classes implementing special interfaces, but for all your
POJOs (plain old Java objects).
 Spring ORM, Spring transaction management supports each of these
ORM frameworks as well as JDBC.
 Spring AOP, which acts interceptor and proxyobject FactoryBean.

Org.springframework.jdbc,datasource.DriverManagerDataConfig,

This is an initializing to the Driver connection of the


database/s.
Provides a utility class for easy DataSource access, a
PlatformTransactionManager for a single DataSource, and various
simple DataSource implementations.
In a J2EE container, it is recommended to use a JNDI DataSource
provided by the container. Such a DataSource can be exported as a
DataSource bean in an ApplicationContext via JndiObjectFactoryBean,
for seamless switching to and from a local DataSource bean like this
class.

Org.springframework.beans.factory.config.PropertiesFacortyBean

PropertiesFactoryBean, gets a hibernates properties,


By setting the dialect of database.
SPI interfaces and configuration-related convenience class for bean
factory.
Making the properties file from classpath location as properties
instance to bean factory.

Org.springframework.orm.hibernate.LocalSessionFactoryBean

Which returns the SessionFactory of hibernate.


In config file, either mappingresource from files or
class(annotions ).
Reference bean object property of propertyfactorybean to
localSessionFactoryBean.
Note that switching to JndiObjectFactoryBean is just matter of
configured

Org,springframework.org.hibernate.hibernateTransactionManager.
@param of the sessionfactory object of LocalSessionFactoryBean
@returns the Transactionmanager object.
Should access bean reference of SessionFactory to
HibenateTransactionManager.
The above class most do configure in spring context initial to access the
Business Objects.

For Business Model Object.

If Transaction object can use proxy object then using


Org,springframework.transaction.inteceptor.transactionprocyFactaryBean

Standard AOP proxyFactoryBean.


AOP-based solution for declarative transaction demarcation.
Its an interceptor for hibernate transaction manager.

So application context file will maps the object of the DAO


class.
In TransactionproxyFactoryBean, has to initialize or pass by
objects of sessionfactory and transactionmanager in that class
constructor.

How to access the Buniness model object to that


transactionproxyFactoryBean object.

Maps the bean object to the reference of SeesionFactory object


of LocalSessionFactoryBean,

And By targeting the object of the TranctionproxyFactaryBean


object to the targets objects.
Every Service implementation of DAO Abstract class or interface
class, should set bean object. All beans to reference local
transactionproxyFactoryBean for targets and initial sessionfactory
bean objects.
Spring AOP. Spring orm.hibernate3
Transaction.interceptor.TransactionProxyFactoryBean. LocalSessionFactoryBean, factory bean
that create local hibernate
SessionFactory instancr.
tranactionManager for sinlge hibernate
sessionfactory.

Spring context.
DataSource of drivermanager, this
jndiobjectfactorybean

Spring DAO.
Exception handler to orm

Spring Core.
Bean.factory.config.ProperrtiesBeanFactory
class.
Bean name id.

Developers has understands the how AOP will calls the Objects of bean
name.
Before that lets gives a sample applicationcontext.xml of hibernate
and springs.
<bean id="dataSoruce" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>

</property>
<property name="url" value="jdbc:mysql://localhost/springdb"/>
<property name="username" value="root"/>
<property name="password" value="admin1234"/>

</bean>
Above bean is a spring context module, for jndiobjectfactorybean
Jdbc jndi property, dataSource.

<bean id="hibernateProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop
key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.connection.pool_size">10</prop>
<prop key="show_sql">false</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory
</prop>
</props>
</property>
</bean>
hibernateProperties bean object, from spring core, for
factoryBean object.

<bean id="exampleSessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBe
an">
<property name="dataSource" >
<ref local="dataSoruce"/>
</property>
<property name="hibernateProperties">
<ref bean="hibernateProperties"/>
</property>
<property name="mappingResources">
<list>
<value>Person.hbm.xml</value>
</list>
</property>
</bean>

<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionM
anager">
<property name="sessionFactory"><ref
bean="exampleSessionFactory"/></property>
</bean>

ExampleSessionFactory, Spring orm module, which local reference


instance to dataSource and bean reference instance to
hibernatesproperties. Mapping resouuces just like hibernate
mapping hbm files. Transactionmanager, local reference
sessionfacory object instance to HibernateTranactionManager.

Below Beans are implementing of the business interface.


<bean id="personDetails" class="com.in.db.impl.PersonImpls">
<property name="sessionFactory">
<ref local="exampleSessionFactory"/>
</property>
</bean>
personDetails bean object, local reference to the
SessionFactory instance.

Below one, Transactonal proxy for business object


personDetails.

<bean id="personsDAO"
class="org.springframework.transaction.interceptor.TransactionP
roxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="target">
<ref local="personDetails"/>
</property>
<property name="transactionAttributes">
<props>
<prop
key="addPerson">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

Now, for example lets lets do business technique on spring and


hibernate, So you want to add the persons details by using
spring and hibernate.
Let gets the object of application context, by this
object, getting beanproperty personDetails to PersonImpl,
PersonImpl object model addPerson method will save the person
details table.

PersonImpl personimpls =
(PersonImpl)xmlbeancontext(“personDetails”);
Personimpl.addPerson(person); // person is persistence class,

Indirectly is call to spring AOP proxy object to get the


instances object (implicit object, we called like).

Now You Under Standard the simple Spring Hibernate

You might also like