I don't know why you code is not working, can you show me your transaction logs. The aop tag you defined in the xml file can be completely replaced by transactional annotation, you should inject an instance of JdbcTemplate to your application code instead of looking it up mannually, With spring 2.5 you can autowire an instance of jdbtemplate in your client code, further more your CustUtilities class looks like a Dao to me, why not annotate you bean with @repository so that spring can translate all your sql execeptions. By the way what situation prevents you from defining your datasource as a spring managed bean?