Hi Hongli,
I got the solution, I found that transaction is getting intialize/starting under CustService and CustDAO classes only, as these two classes are managed by Spring. So its doing Rollback for RuntimeException under these two classes. So its doing Rollback as per my expectation.

, ( and @Transactional is required to any one of these two classes as per one's requirement not required to put in CustDAO if @Transactional is there on CustService class or any of method under this class )
But it will not do Rollback under CustUtilities class as it is not managed by Spring. And @Transactional is useless for this class and any method under this class.
One question regarding your suggestion. Can you please show me way?
As per my knowledge we need to instiate spring container by following way,
So if i will inject custService under CustUtilities then i need to create <bean name="custUtil"> under applicationContext-jdbc2.xml for CustUtilities class first as mentioned below. (correct me if i am wrong)
and after that i need to get that custUtil bean like following way instead of creating new CustUtilities(), correct me if i am worng.
Or is there any way to instanitate Spring container without using above code?
Thanks again for your help.
Regards,
Ronak.