I am new to spring, with working knowledge of hibernate. My job was to implement transaction by using spring declarative approach.And successfully i did with the help of Google, thanks to Google. But not able to understand clearly about the terms I used in application-context.xml.
<aop-config> // here is point cut were declared </aop-config>
can somebody explain me about above point, Meanwhile I am trying to understand it from the google also.
As you already successfully implemented
Spring we can implement transaction in three ways:
- Platform Transaction Management.
- Declarative Transaction Management.
- Programmatic Transaction Management.
What you implemented is called Declarative Transaction Management via XML.
In short you did the implementation of
transaction by Spring’s AOP feature.
tx:advice XML configuration with an XML based AOP configuration makes for synergistic combination. For example, we can use method names to automatically figure out what kind of transaction we want to apply on that method.
Say we want to apply the transaction on all that methods which start with
modify such as
modifyBill(). For these we have to define the
advice in our xml file:
<tx:advice id="txAdvice" > <tx:attributes> <tx:method name="save*" propagation="REQUIRED"/> <tx:method name="modify*" propagation="REQUIRED"/> </tx:attributes> </tx:advice>
Our advice is ready, as we said by using above line that we want transactions only on the methods which start with
modify. Now we are going to say which beans require the above advice by using
pointcut element of
aop-config. For example let say we want to apply the transaction advice to all of the classes which are available inside the
For this, we have to add the following line inside our xml file:
<aop:config> <aop:pointcut id="allServices" expression="execution(*com.mytransaction.service.*.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="allServices"/> </aop:config>
<tx:advice> mean what to do or which behavior of transaction we want to apply.
pointcut element inside
<aop-config> says where we want to apply the transaction,
<aop:advisor advice-ref="txAdvice" pointcut-ref="allServices"/>